<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2420752830339668585</id><updated>2024-10-05T12:49:52.587+09:00</updated><category term="Android"/><category term="google"/><category term="Eclipse"/><category term="Oracle"/><category term="Android1.5"/><category term="開発"/><category term="Android2.2"/><category term="Android2.3"/><category term="携帯"/><category term="Java"/><category term="チューニング"/><category term="BroadcastReceiver"/><category term="SQL"/><category term="Service"/><category term="onReceive"/><category term="インストール"/><category term="常駐アプリ"/><category term="Docomo"/><category term="yahoo"/><category term="ツール"/><category term="ブログ"/><category term="メモリリーク"/><category term="ランキング"/><category term="上位"/><category term="検索エンジン"/><category term="ANR"/><category term="Access"/><category term="Activity間の遷移"/><category term="Ajax"/><category term="Alpha"/><category term="CheckStyle"/><category term="DB2"/><category term="DHTML"/><category term="DXImageTransform"/><category term="GC"/><category term="Google AdSense"/><category term="HT-03A"/><category term="HTML"/><category term="IBM"/><category term="Microsoft"/><category term="ODBC"/><category term="Profiler"/><category term="Robot"/><category term="Sun"/><category term="TCP/IP"/><category term="Twitter"/><category term="apk"/><category term="apkからclass"/><category term="bing"/><category term="class"/><category term="dex2jar"/><category term="filter"/><category term="mixi"/><category term="opacity"/><category term="prototype.js"/><category term="public_timeline"/><category term="unzip"/><category term="アドセンス"/><category term="アフィリエイト"/><category term="インデックス"/><category term="インポート"/><category term="インポート、エクスポート"/><category term="エクスポート"/><category term="コマンド"/><category term="サイトの収入"/><category term="スタイルシートの要素を動的"/><category term="ストアドプロシージャ"/><category term="データソース"/><category term="パブリックタイムライン"/><category term="ヒント"/><category term="ファイル"/><category term="プラグイン"/><category term="プログラミング言語開発"/><category term="マテリアライズドビュー、リフレッシュ"/><category term="価格"/><category term="動かす"/><category term="実機"/><category term="広告収入"/><category term="改行コード"/><category term="整形"/><category term="更新ファイル"/><category term="環境構築"/><category term="画面遷移"/><category term="発売日"/><category term="統計情報"/><category term="透過"/><category term="非同期通信"/><title type='text'>ワイケイの格納庫</title><subtitle type='html'>Webアプリケーションエンジニアのテクニカル情報提供サイト　～Webネーム：ワイケイ～</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-4794929088064381714</id><published>2012-05-22T15:59:00.003+09:00</published><updated>2014-04-24T14:06:58.933+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android2.2"/><category scheme="http://www.blogger.com/atom/ns#" term="Android2.3"/><category scheme="http://www.blogger.com/atom/ns#" term="BroadcastReceiver"/><category scheme="http://www.blogger.com/atom/ns#" term="onReceive"/><category scheme="http://www.blogger.com/atom/ns#" term="Service"/><category scheme="http://www.blogger.com/atom/ns#" term="常駐アプリ"/><category scheme="http://www.blogger.com/atom/ns#" term="開発"/><title type='text'>0から始めるAndroid　～常駐アプリを作る　死なないService編～</title><content type='html'>&lt;a href=&quot;http://yk-inventory.blogspot.jp/2012/05/android22service.html&quot;&gt;前回&lt;/a&gt;、Serviceに負荷を掛けるとANRが発生することが判明したので、&lt;br /&gt;
今回はメイン処理を別スレッドで実行するとどのような結果になるか調査する。&lt;br /&gt;
&lt;br /&gt;
結論から言うと、成功である。&lt;br /&gt;
が但し、以下の条件付き。&lt;br /&gt;
１．サービスは停止していないが、正常終了しないことが頻繁に発生する。&lt;br /&gt;
２．USB接続を切断すると、一定間隔のスレッド起動の予定が&lt;br /&gt;
　間隔に大きな誤差が生じることが頻繁に発生する。&lt;br /&gt;
３．USB接続を切断すると、スレッドが起動しないことが頻繁に発生する。&lt;br /&gt;
４．USB接続すると、スレッドが正常に起動することが頻繁に発生する。&lt;br /&gt;
&lt;br /&gt;
１については、アプリの仕様に問題がある可能性が高いので保留とする。&lt;br /&gt;
２～４については、開発目的の手順でインストールしたことが原因かも知れないので、&lt;br /&gt;
手動でapkファイルを生成してから再度インストールする試験をいずれ実施する。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;public class Login01Service extends Service  {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　private final int REPEAT_INTERVAL = 1 * 60 * 1000;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　private Handler handler = new Handler();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　private Runnable runnable;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　@Override&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　public void onStart(Intent intent, int startId) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　　//このおまじないのおかげでサービスが殺されにくくなっている？&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　　Notification lNotification = new Notification(0, &quot;ticker&quot;, System.currentTimeMillis());&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　　startForeground(1, lNotification);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　　runnable = new Runnable() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　　　public void run() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　　　　//繰り返し処理&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　　　　mainTran();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　　　　handler.postDelayed(this, REPEAT_INTERVAL);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　　　}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　　};&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　　handler.postDelayed(runnable, REPEAT_INTERVAL);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;　}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #e06666;&quot;&gt;}&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/4794929088064381714/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2012/05/0android22service.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/4794929088064381714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/4794929088064381714'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2012/05/0android22service.html' title='0から始めるAndroid　～常駐アプリを作る　死なないService編～'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-6367001329624050520</id><published>2012-05-22T15:07:00.004+09:00</published><updated>2014-04-24T13:47:59.224+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android2.2"/><category scheme="http://www.blogger.com/atom/ns#" term="Android2.3"/><category scheme="http://www.blogger.com/atom/ns#" term="ANR"/><category scheme="http://www.blogger.com/atom/ns#" term="BroadcastReceiver"/><category scheme="http://www.blogger.com/atom/ns#" term="onReceive"/><category scheme="http://www.blogger.com/atom/ns#" term="Service"/><category scheme="http://www.blogger.com/atom/ns#" term="常駐アプリ"/><category scheme="http://www.blogger.com/atom/ns#" term="開発"/><title type='text'>0から始めるAndroid　～常駐アプリを作る　Serviceも死ぬ編～</title><content type='html'>前回のBroadcastReceiverについて調査していくと、&lt;br /&gt;
常駐アプリはどうやらBroadcastReceiverではなくServiceを利用するのが適切なのかも知れない。&lt;br /&gt;
そこで、&lt;a href=&quot;http://yk-inventory.blogspot.jp/2012/05/0android22broadcastreceiver.html&quot;&gt;前回&lt;/a&gt;の構成を一部だけ変更して、親クラスをActivityからServiceに変更することに。&lt;br /&gt;
すると、ANR（Application Not Responding）で死亡する運命となってしまった。&lt;br /&gt;
確かに、Webサービスに接続してレスポンスが悪いと固まってしまうのは事実だからしょうがない。&lt;br /&gt;
しかし、少しだけ希望が見えた。&lt;br /&gt;
Service自身がメイン処理を実行しているのが問題であることが分かったので、&lt;br /&gt;
別スレッドでメイン処理を実行すれば成功するのではないか？</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/6367001329624050520/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2012/05/android22service.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/6367001329624050520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/6367001329624050520'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2012/05/android22service.html' title='0から始めるAndroid　～常駐アプリを作る　Serviceも死ぬ編～'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-2723686982853621955</id><published>2012-05-22T14:39:00.006+09:00</published><updated>2014-04-24T13:48:13.515+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android2.2"/><category scheme="http://www.blogger.com/atom/ns#" term="Android2.3"/><category scheme="http://www.blogger.com/atom/ns#" term="BroadcastReceiver"/><category scheme="http://www.blogger.com/atom/ns#" term="onReceive"/><category scheme="http://www.blogger.com/atom/ns#" term="Service"/><category scheme="http://www.blogger.com/atom/ns#" term="常駐アプリ"/><category scheme="http://www.blogger.com/atom/ns#" term="開発"/><title type='text'>0から始めるAndroid　～常駐アプリを作る　BroadcastReceiverは死ぬ編～</title><content type='html'>タイトル通りBroadcastReceiverは死ぬ。いや、死ぬかも知れない。&lt;br /&gt;
以前に作成したDoCoMoのSPモードメール、SMS、Gmailなどの&lt;br /&gt;
メールを受信時に起動するアプリでは気づかなかったが、&lt;br /&gt;
BroadcastReceiverの仕様で「10秒以内に処理が完了しないと停止する」ということだ。&lt;br /&gt;
ここで問題なのは、onReceiveが中断されることよりも&lt;br /&gt;
BroadcastReceiver自身が停止してしまうことである。&lt;br /&gt;
一旦停止されると、ユーザ操作により再度起動するしかない。&lt;br /&gt;
ちなみに今回作ろうとしているアプリは、&lt;br /&gt;
GPSを一定間隔で取得、Googleサービスにアクセスしてデータ登録及び取得するという代物で&lt;br /&gt;
10秒ルールを守れないことも多々ある。&lt;br /&gt;
&lt;br /&gt;
下記の方法では、停止する可能性あり。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #ffff33;&quot;&gt;public class SampleActivity extends Activity {&lt;br /&gt;&lt;br /&gt;　private BroadcastReceiver receiver;&lt;br /&gt;&lt;br /&gt;　@Override&lt;br /&gt;　public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;&lt;br /&gt;　　IntentFilter filter = new IntentFilter();&lt;br /&gt;　　filter.addAction(Intent.ACTION_TIME_TICK);            //毎分&lt;br /&gt;&lt;br /&gt;　　receiver = new BroadcastReceiver() {&lt;br /&gt;　　　@Override&lt;br /&gt;　　　public void onReceive(Context context, Intent intent) {&lt;br /&gt;　　　　//定期処理を記述&lt;br /&gt;&lt;br /&gt;　　　}&lt;br /&gt;　　}&lt;br /&gt;　}&lt;br /&gt;}&lt;/span&gt;&lt;span style=&quot;color: #ffff33;&quot;&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/2723686982853621955/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2012/05/0android22broadcastreceiver.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/2723686982853621955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/2723686982853621955'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2012/05/0android22broadcastreceiver.html' title='0から始めるAndroid　～常駐アプリを作る　BroadcastReceiverは死ぬ編～'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-5119998664535973405</id><published>2012-05-22T14:16:00.007+09:00</published><updated>2014-04-24T13:48:25.078+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Activity間の遷移"/><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android2.2"/><category scheme="http://www.blogger.com/atom/ns#" term="Android2.3"/><category scheme="http://www.blogger.com/atom/ns#" term="画面遷移"/><category scheme="http://www.blogger.com/atom/ns#" term="開発"/><title type='text'>0から始めるAndroid　～画面遷移～</title><content type='html'>Webアプリケーション開発者にすると、画面遷移という言葉がマッチするが、&lt;br /&gt;
実際はActivity間の遷移という方が妥当なのであろう。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NowActivityからNextActivityへの遷移例&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #ffccff;&quot;&gt;・NowActivity.javaの任意のイベント内に以下を追記する。&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffff33;&quot;&gt;Intent intent = new Intent(NowActivity.this, NextActivity.class);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffff33;&quot;&gt;startActivity(intent);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #ffccff;&quot;&gt;・AndroidManifest.xmlのapplicationタグに以下を追記する。&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffff33;&quot;&gt;＜activity android:name=&quot;.Map01Activity&quot;＞＜/activity＞&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
「＜」、「＞」は半角に読み替えて下さい。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;activity name=&quot;.Map01Activity&quot;&gt;&lt;/activity&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/5119998664535973405/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2012/05/0android22_22.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/5119998664535973405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/5119998664535973405'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2012/05/0android22_22.html' title='0から始めるAndroid　～画面遷移～'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-5396548061954540263</id><published>2012-05-22T10:33:00.004+09:00</published><updated>2014-04-24T13:48:47.803+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android2.2"/><category scheme="http://www.blogger.com/atom/ns#" term="Android2.3"/><category scheme="http://www.blogger.com/atom/ns#" term="動かす"/><category scheme="http://www.blogger.com/atom/ns#" term="実機"/><category scheme="http://www.blogger.com/atom/ns#" term="開発"/><title type='text'>0から始めるAndroid　～実機でアプリを動かす～</title><content type='html'>&lt;span style=&quot;font-weight: bold;&quot;&gt;まず、アプリを作成する。&lt;/span&gt;&lt;a href=&quot;http://yk-inventory.blogspot.jp/2009/05/0android15helloworld.html&quot;&gt;※以前に紹介したHelloWorld編&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;実機を開発マシンにUSB接続する。&lt;/span&gt;&lt;br /&gt;
EclipseのLogCatウィンドウにログが出力されていればOK。&lt;br /&gt;
ログが出力されない場合は、DDMSパースペクティブでDevicesから実機を選択する。&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;実行構成を設定して、実行する。&lt;/span&gt;&lt;br /&gt;
Eclipseメニュー　→　実行　→　実行構成&lt;br /&gt;
Androidアプリケーションを右クリックで　新規　を選択する。&lt;br /&gt;
&lt;br /&gt;
実行構成に任意の名前をつける。&lt;br /&gt;
&lt;br /&gt;
Androidタブでプロジェクトを選択する。&lt;br /&gt;
Launch　Actionは任意。&lt;br /&gt;
&lt;br /&gt;
ターゲットタブでマニュアルを選択する。&lt;br /&gt;
&lt;br /&gt;
共通タブはデフォルトのままでOK。&lt;br /&gt;
&lt;br /&gt;
実行ボタンを押下すると、Android Device Chooserダイアログが表示されるので&lt;br /&gt;
実機を選択して、OKを押下する。&lt;br /&gt;
&lt;br /&gt;
実機に HelloWorld が表示されればOK。&lt;br /&gt;
実機のアプリ一覧にも HelloWorld が追加されて、&lt;br /&gt;
アプリをインストールできたことが確認できる。</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/5396548061954540263/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2012/05/0android22.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/5396548061954540263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/5396548061954540263'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2012/05/0android22.html' title='0から始めるAndroid　～実機でアプリを動かす～'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-2634986417507417946</id><published>2012-05-21T16:52:00.010+09:00</published><updated>2014-04-24T13:49:07.395+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android2.2"/><category scheme="http://www.blogger.com/atom/ns#" term="Android2.3"/><category scheme="http://www.blogger.com/atom/ns#" term="インストール"/><category scheme="http://www.blogger.com/atom/ns#" term="環境構築"/><category scheme="http://www.blogger.com/atom/ns#" term="開発"/><title type='text'>0から始めるAndroid　～インストール編～</title><content type='html'>Android2.2以降の開発手順を掲載していきます。&lt;br /&gt;
※現時点でリリースされている大半の端末がAndroid2.2以降なので。&lt;br /&gt;
&lt;br /&gt;
＜＜＜　JDK6　＞＞＞&lt;br /&gt;
&lt;a href=&quot;http://java.sun.com/javase/downloads/index.jsp&quot;&gt;http://java.sun.com/javase/downloads/index.jsp&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
＜＜＜　Eclipse3.7　＞＞＞※日本語化プラグイン包含パッケージ&lt;br /&gt;
&lt;a href=&quot;http://www.vector.co.jp/soft/winnt/prog/se496195.html&quot;&gt;http://www.vector.co.jp/soft/winnt/prog/se496195.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
＜＜＜　Android SDK　＞＞＞&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/sdk/index.html&quot;&gt;http://developer.android.com/sdk/index.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
＜＜＜　EclipsePlugin:Android　＞＞＞&lt;br /&gt;
&lt;a href=&quot;https://dl-ssl.google.com/android/eclipse/&quot;&gt;https://dl-ssl.google.com/android/eclipse/&lt;/a&gt;&lt;br /&gt;
※インストールは、Eclipseを起動して&lt;br /&gt;
Help⇒Software Updates⇒Available SoftWare⇒Add Site&lt;br /&gt;
にて行う。&lt;br /&gt;
&lt;br /&gt;
Android SDKマネージャーを開いて、必要なAndroidバージョンだけインストールする。&lt;br /&gt;
後は、AVDマネージャーで仮想デバイスを構築すればOK。&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/2634986417507417946/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2012/05/test.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/2634986417507417946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/2634986417507417946'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2012/05/test.html' title='0から始めるAndroid　～インストール編～'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-1521436157171690562</id><published>2011-05-31T14:25:00.003+09:00</published><updated>2011-05-31T14:42:46.409+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="apk"/><category scheme="http://www.blogger.com/atom/ns#" term="apkからclass"/><category scheme="http://www.blogger.com/atom/ns#" term="class"/><category scheme="http://www.blogger.com/atom/ns#" term="dex2jar"/><category scheme="http://www.blogger.com/atom/ns#" term="unzip"/><category scheme="http://www.blogger.com/atom/ns#" term="開発"/><title type='text'>Android 開発 apkからclassを生成</title><content type='html'>apkをunzipすれば、dexを生成することができる。&lt;div&gt;後はdexからjarを生成すればOK。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;＜手順＞&lt;/div&gt;&lt;div&gt;１．dex2jarをDLする。&lt;/div&gt;&lt;div&gt;　　　　以下のサイトから「dex2jar-0.0.7.9-SNAPSHOT.zip」をDLして、解凍する。&lt;/div&gt;&lt;div&gt;　　　　http://code.google.com/p/dex2jar/downloads/list&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;２．apkを解凍する。&lt;/div&gt;&lt;div&gt;　　　　コマンドプロンプト上で、以下のコマンドを実行する。&lt;/div&gt;&lt;div&gt;　　　　unzip xxxxx.apk&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;３．上記2で生成したclasses.dexからjarを生成する。&lt;/div&gt;&lt;div&gt;　　　　コマンドプロンプト上で、上記1を解凍したディレクトリに移動して以下のコマンドを実行する。&lt;/div&gt;&lt;div&gt;　　　　dex2jar.bat classes.dex&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;さらにclassを生成する場合には、以下のコマンドを実行する。&lt;/div&gt;&lt;div&gt;unzip classes.dex.dex2jar.jar&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/1521436157171690562/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2011/05/android-apkclass.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/1521436157171690562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/1521436157171690562'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2011/05/android-apkclass.html' title='Android 開発 apkからclassを生成'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-677690086013272671</id><published>2009-09-07T16:31:00.006+09:00</published><updated>2009-09-08T09:56:20.877+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google AdSense"/><category scheme="http://www.blogger.com/atom/ns#" term="アドセンス"/><category scheme="http://www.blogger.com/atom/ns#" term="アフィリエイト"/><category scheme="http://www.blogger.com/atom/ns#" term="サイトの収入"/><category scheme="http://www.blogger.com/atom/ns#" term="広告収入"/><title type='text'>アドセンスは儲かるのか</title><content type='html'>個人が運営しているWebサイトの大半がアフィリエイトプログラムを導入しており、&lt;br /&gt;どのサイトを見ても本文よりも広告の方が派手だったりする。&lt;br /&gt;当サイトも広告収入に淡い期待を抱いており、｢Google AdSense｣による広告配信を行っている。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;｢Google AdSense｣とはサービス名が指し示す通り、&lt;br /&gt;Googleの提供しているコンテンツマッチ式の広告配信サービスのことで、&lt;br /&gt;本文の内容に合わせた広告を自動で配信してくれるサービスである。&lt;br /&gt;その広告がユーザに閲覧されると、サイト運営者に報酬が支払われるという仕組みだ。&lt;br /&gt;広告内容によって、報酬額が異なっているのも特筆すべき点だろう。&lt;br /&gt;また、報酬が支払われるのは＄100単位で、＄100に達した月の翌月末となる。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;気になる当サイトの収入だが、&lt;br /&gt;広告クリック率が平均0.73％で、1クリック当たり平均＄0.45の収益が得られる。&lt;br /&gt;時給換算すると、時給＄1にも満たない。&lt;br /&gt;クリック率を上げる為に、もう少し興味を惹くような広告を掲載してほしいものである。&lt;br /&gt;収入は、2009年1月に開設して現時点で0円である。&lt;br /&gt;&lt;br /&gt;もう一度言うが、0円である。&lt;br /&gt;&lt;br /&gt;つまり、8ヶ月経過して未だに＄100に達していないのである。&lt;br /&gt;現時点での収益は、＄27.86なのでこのペースで行けば、あと3年は掛かるであろう。&lt;br /&gt;それ以前に、このサイトがその日まで存続しているのかが問題である。&lt;br /&gt;当サイトのブログランキングは、以下のサイトで確認できる。&lt;br /&gt;&lt;a href=&quot;http://blog.with2.net/link.php?883480&quot;&gt;&lt;img border=&quot;0&quot; width=&quot;200&quot; alt=&quot;人気ブログランキングへ&quot; src=&quot;http://image.with2.net/img/banner/banner_22.gif&quot; height=&quot;40&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a href=&quot;http://www.blogmura.com/&quot; &gt;&lt;img src=&quot;http://www.blogmura.com/img/www88_31_3.gif&quot; width=&quot;88&quot; height=&quot;31&quot; border=&quot;0&quot; alt=&quot;ブログランキング・にほんブログ村へ&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;忘れた頃に、Googleから銀行振込されていたらラッキーだと思うんだろうな。&lt;br /&gt;&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/677690086013272671/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/09/blog-post_07.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/677690086013272671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/677690086013272671'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/09/blog-post_07.html' title='アドセンスは儲かるのか'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-3481033667710697336</id><published>2009-09-02T15:47:00.006+09:00</published><updated>2009-09-02T17:08:35.040+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Robot"/><category scheme="http://www.blogger.com/atom/ns#" term="プログラミング言語開発"/><title type='text'>プログラミング言語を開発してみた</title><content type='html'>なんて言うと大袈裟だが、｢マクロ言語の開発｣となると、かなりハードルが下がるように感じないだろうか。&lt;br /&gt;ウィキペディアによると、&lt;br /&gt;｢マクロ言語は、アプリケーションソフトウェアの機能を直接キーボードやマウスなどから利用するのではなく、プログラムから利用するためのプログラミング言語である。｣&lt;br /&gt;と、定義されている。&lt;br /&gt;&lt;br /&gt;要約すると、&lt;br /&gt;｢マクロ言語は、プログラミング言語である。｣&lt;br /&gt;ということになる。&lt;br /&gt;&lt;br /&gt;そこで、Javaの標準ライブラリの中から&lt;br /&gt;｢java.awt.Robot｣&lt;br /&gt;にスポットを当てた言語開発にチャレンジしてみる。&lt;br /&gt;このクラスは、OS上でマウス及びキーボードイベントを発生させることができるという特徴がある。&lt;br /&gt;Robotを利用すれば、システムを自動でテストできる（かもしれない）。&lt;br /&gt;実行環境セットを以下に格納している。&lt;br /&gt;※実行中は、くれぐれもマウスやキーボードに触らないように。&lt;br /&gt;&lt;a href=&quot;http://groups.google.co.jp/group/yk-inventory?hl=ja&quot;&gt;＜＜＜Google Group＞＞＞&lt;/a&gt;&lt;br /&gt;http://groups.google.co.jp/group/yk-inventory?hl=ja&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;＜＜開発のポイント＞＞&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;１．プログラミング言語の開発には、字句解析・構文解析が必要となる。&lt;br /&gt;　　　字句解析とは、関数・変数・定数などを解釈することで、&lt;br /&gt;　　　構文解析とは、字句の位置や順序を解釈することである。&lt;br /&gt;&lt;br /&gt;２．プログラマでなくても簡単にプログラムを書けなくてはならない。&lt;br /&gt;　　　元々のJavaよりも、難解なのでは開発する意味がなくなってしまう。&lt;br /&gt;　　　今回は、一定の単純な規則になるような構造にした。&lt;br /&gt;　　　分岐や繰り返しすらない。&lt;br /&gt;&lt;br /&gt;３．問題が発生しそうな機能は、ユーザに解放しない。&lt;br /&gt;　　　Robot利用時に問題となるのが、アプリ終了後のイベントの解放であるが、&lt;br /&gt;　　　マウスをプレスするとリリースが必要となるのである。&lt;br /&gt;　　　誤って、リリース処理が洩れると対象のアプリが異常な挙動を示す場合がある。&lt;br /&gt;　　　対処として、プレス機能は解放せずに、代わりにクリック機能と&lt;br /&gt;　　　ドラッグ＆ドロップ機能を作成して、それをユーザに提供することとした。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;＜＜処理概要＞＞&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Executable Jarに解析プログラムを格納して、JavaRuntime環境配下での起動を可能とする。&lt;br /&gt;Jarはダブルクリックで起動して、同階層のディレクトリから｢robot.txt｣というファイルを読み込む。&lt;br /&gt;そのファイルの一行目には、ユーザが作成したマクロのファイルパスを記載する。&lt;br /&gt;次に、ファイルパスを元にマクロを開き、解析をしながら、マクロに記述された処理を進めていく。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;＜＜関数一覧＞＞&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;comm [comment]                  ← コマンド内でのコメント&lt;br /&gt;&lt;br /&gt;skey [key]                      ← keyの単独押下&lt;br /&gt;&lt;br /&gt;wkey [key1] [key2]              ← keyの二重押下&lt;br /&gt;&lt;br /&gt;lkey [string]                   ← 文字列入力（全角モードで、自動でひらがなに確定する。）&lt;br /&gt;&lt;br /&gt;kkey [string]                   ← 文字列入力（全角モードで、自動でひらがなに確定しない。）&lt;br /&gt;&lt;br /&gt;mclk [button]                   ← マウスのクリック（LEFT または RIGHT）&lt;br /&gt;&lt;br /&gt;mmov [x] [y]                    ← マウスの移動&lt;br /&gt;&lt;br /&gt;drdr [x1] [y1] [x2] [y2]        ← マウスの移動&lt;br /&gt;&lt;br /&gt;wait [time]                     ← 待機(アプリ起動時は、起動中の待機時間が必要)</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/3481033667710697336/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/09/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/3481033667710697336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/3481033667710697336'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/09/blog-post.html' title='プログラミング言語を開発してみた'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-5255867691242615763</id><published>2009-08-25T10:46:00.003+09:00</published><updated>2009-10-13T15:19:12.048+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mixi"/><category scheme="http://www.blogger.com/atom/ns#" term="public_timeline"/><category scheme="http://www.blogger.com/atom/ns#" term="Twitter"/><category scheme="http://www.blogger.com/atom/ns#" term="パブリックタイムライン"/><title type='text'>Twitterはじめました</title><content type='html'>和訳すると、｢さえずり｣。&lt;br /&gt;当サービスは、ユーザが呟くことでコミュニティやコミュニケーションが生まれるSNSである。&lt;br /&gt;そんなことは知っていたが、何が面白いのか理解できないので利用したことはなかった。&lt;br /&gt;だが、顕著にユーザ数を伸ばしている秘密を探ろうと思い、登録してみることにした。&lt;br /&gt;&lt;br /&gt;パブリックタイムラインでは、全世界からの呟きを見ることができる。&lt;br /&gt;英語、仏語、中国語、韓国語など以外にも多言語が飛び交っていて、&lt;br /&gt;意味は分からないが雰囲気だけでも面白い。&lt;br /&gt;だが、このページにはURL直打ちでしか見る術はない模様。&lt;br /&gt;&lt;a href=&quot;http://twitter.com/public_timeline&quot;&gt;http://twitter.com/public_timeline&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;一般的な使い方としては、リアルにいる多くの友人に向けて&lt;br /&gt;「今、○○をしている」&lt;br /&gt;とか&lt;br /&gt;「今、○○にいる」&lt;br /&gt;などと、発信することにより&lt;br /&gt;「じゃあ、オレも行く。」&lt;br /&gt;というようにリアルなコミュニケーションへと繋げていくものだろう。&lt;br /&gt;&lt;br /&gt;Twitterは、mixiと違い、気楽に発信できるという点では素晴らしいと思う。&lt;br /&gt;後者は実力が不十分であるにも関わらず、それに反比例してユーザ数が膨大になってしまった。&lt;br /&gt;人気に陰りが出た今になって、あの手この手でもがいているが離れてしまったユーザを取り戻すのは至難の業だろう。&lt;br /&gt;人気の理由は『完全招待制』にあったと思われるが、『登録制』に緩和しようとする動きもある。&lt;br /&gt;前者は日本向けのサービスが不充分なので、検索機能とリロード機能に注力して頂きたいものだ。&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnF8SLVQ5UYOV_w4xGGeO26L0UeY6UxdnM8SnxT4F4P15ornom6w8ANp1SXAs0U23FcbFRQiUBwPmINJ5WaKUCkTRPO8iA-VHM1xJcj0ikD-CDyzmaBw7UEKJCRFmrsaOazMcw6QaieSg/s1600-h/black.png&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 3px; height: 3px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnF8SLVQ5UYOV_w4xGGeO26L0UeY6UxdnM8SnxT4F4P15ornom6w8ANp1SXAs0U23FcbFRQiUBwPmINJ5WaKUCkTRPO8iA-VHM1xJcj0ikD-CDyzmaBw7UEKJCRFmrsaOazMcw6QaieSg/s400/black.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5391965104629259538&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/5255867691242615763/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/08/twitter.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/5255867691242615763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/5255867691242615763'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/08/twitter.html' title='Twitterはじめました'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnF8SLVQ5UYOV_w4xGGeO26L0UeY6UxdnM8SnxT4F4P15ornom6w8ANp1SXAs0U23FcbFRQiUBwPmINJ5WaKUCkTRPO8iA-VHM1xJcj0ikD-CDyzmaBw7UEKJCRFmrsaOazMcw6QaieSg/s72-c/black.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-9199821076629898881</id><published>2009-07-10T10:20:00.002+09:00</published><updated>2009-07-10T11:17:22.371+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android1.5"/><category scheme="http://www.blogger.com/atom/ns#" term="Docomo"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="HT-03A"/><category scheme="http://www.blogger.com/atom/ns#" term="価格"/><title type='text'>Android携帯　本日発売</title><content type='html'>&lt;div&gt;&lt;div&gt;当サイトでも取り上げているGoogleOS搭載携帯の&lt;/div&gt;&lt;div&gt;第一弾であるHT-03Aが本日（7月10日）発売された。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;気になる価格は３００００円前後の模様。&lt;/div&gt;&lt;div&gt;他社と較べてOSを無償提供しているからこそ&lt;/div&gt;&lt;div&gt;この価格帯を実現できたのだと思われる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;携帯としての機能だが、&lt;/div&gt;&lt;div&gt;Googleが提供する各サービス&lt;/div&gt;&lt;div&gt;（検索、Gmail、Googleマップ、YouTube、カレンダー）&lt;/div&gt;&lt;div&gt;の恩恵を受けられるのが特徴である。&lt;/div&gt;&lt;div&gt;では、それ以外の基本的な機能はというと疑問である。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;docomoユーザである私の場合だと、&lt;/div&gt;&lt;div&gt;インフラ的な役割として&lt;/div&gt;&lt;div&gt;・通話&lt;/div&gt;&lt;div&gt;・i-modeメール&lt;/div&gt;&lt;div&gt;・iアプリ（口座振込アプリを利用）&lt;/div&gt;&lt;div&gt;・時計&lt;/div&gt;&lt;div&gt;・目覚まし時計&lt;/div&gt;&lt;div&gt;などが挙げられる。&lt;/div&gt;&lt;div&gt;それ以外のカメラ、音楽やゲームなどのエンターテイメントは&lt;/div&gt;&lt;div&gt;なくても困ることはない。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Androidに変更した場合、&lt;/div&gt;&lt;div&gt;通話、時計は勿論大丈夫だろう。&lt;/div&gt;&lt;div&gt;目覚まし時計はなければ自分で作ればいい。&lt;/div&gt;&lt;div&gt;iアプリがないのは、忙しいときなど正直困るが慣れれば我慢できるか。&lt;/div&gt;&lt;div&gt;i-modeメールが利用できない代わりにGmailは利用できる。&lt;/div&gt;&lt;div&gt;通信相手は迷惑メール対策をしているであろうから&lt;/div&gt;&lt;div&gt;ドメイン許可、アドレス許可の設定を依頼すれば、&lt;/div&gt;&lt;div&gt;Gmailを携帯メールとして利用できる。&lt;/div&gt;&lt;div&gt;もしくは、メール転送サービスを利用すればいいだろう。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;書いていて気づいたのだが、&lt;/div&gt;&lt;div&gt;今の携帯よりもグレードダウンしているのではないか。&lt;/div&gt;&lt;div&gt;携帯を変えることにより享受できる恩恵よりも&lt;/div&gt;&lt;div&gt;ストレスを受けることの方が多いのではないだろうか。&lt;/div&gt;&lt;div&gt;タッチパネルもYouTubeもすぐ飽きるだろう。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;唯一の光は、アプリ開発だけである。&lt;/div&gt;&lt;div&gt;自分好みのアプリを開発して、自分が利用できるという楽しみ。&lt;/div&gt;&lt;div&gt;友人に配布して共有するという楽しみ。&lt;/div&gt;&lt;div&gt;日本や世界に配布して利益を得るという楽しみ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/9199821076629898881/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/07/android.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/9199821076629898881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/9199821076629898881'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/07/android.html' title='Android携帯　本日発売'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-1822640529114145110</id><published>2009-07-09T09:47:00.004+09:00</published><updated>2009-07-09T10:41:25.517+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bing"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="yahoo"/><category scheme="http://www.blogger.com/atom/ns#" term="ブログ"/><category scheme="http://www.blogger.com/atom/ns#" term="ランキング"/><category scheme="http://www.blogger.com/atom/ns#" term="上位"/><category scheme="http://www.blogger.com/atom/ns#" term="検索エンジン"/><title type='text'>検索エンジン　検索結果に表示するには・・・結果報告</title><content type='html'>&lt;div&gt;以前に当サイトでも書いたが、&lt;/div&gt;各社の検索エンジンに当サイトを登録してから約半年が経つ。&lt;div&gt;では、「ワイケイの格納庫」というキーワードでHitするようになったのかというと、&lt;/div&gt;&lt;div&gt;Google以外は全滅という残念な結果になってしまった。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Googleでは、上記のキーワードで検索結果TOPになるのは勿論で、&lt;/div&gt;&lt;div&gt;「&lt;span class=&quot;Apple-style-span&quot;   style=&quot; border-collapse: collapse;  white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:Arial;font-size:13px;&quot;&gt;android1.5 eclipse&lt;span class=&quot;Apple-style-span&quot;   style=&quot;border-collapse: separate;   white-space: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-family:Georgia;font-size:16px;&quot;&gt;」というキーワードなどでもTOPになることができた。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;では、YahooやBingではどのようになるのかというと、&lt;/div&gt;&lt;div&gt;当サイトではなく、当サイトをブックマークしているサイトが&lt;/div&gt;&lt;div&gt;検索結果に表示されてしまう。&lt;/div&gt;&lt;div&gt;某社（社名を出すのも鬱陶しい）のサービスで有名だが、&lt;/div&gt;&lt;div&gt;他人のブックマークが有益な情報であるとは考えられないので、&lt;/div&gt;&lt;div&gt;Web上に公開するのはいいとして、キーワード検索からは除外すべきである。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;そんな無益なサイトは表示されるが、&lt;/div&gt;&lt;div&gt;当サイトはそもそも認識されていないという残念な結果になった。&lt;/div&gt;&lt;div&gt;彼らは有益だと考えているからブックマークしているのだが、&lt;/div&gt;&lt;div&gt;何も持っていないその彼らのサイトがそれよりも有益だという&lt;/div&gt;&lt;div&gt;矛盾が検索エンジンでは発生する。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;まあ、IT技術者はググるはずなので納得するということにしておこう。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;＜各社検索エンジンのURL登録＞&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yahoo&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://submit.search.yahoo.co.jp/add/request&quot;&gt;http://submit.search.yahoo.co.jp/add/request&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Google&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.google.co.jp/addurl/?hl=ja&amp;amp;continue=/addurl&quot;&gt;http://www.google.co.jp/addurl/?hl=ja&amp;amp;continue=/addurl&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bing&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.bing.com/docs/submit.aspx&quot;&gt;http://www.bing.com/docs/submit.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/1822640529114145110/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/07/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/1822640529114145110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/1822640529114145110'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/07/blog-post.html' title='検索エンジン　検索結果に表示するには・・・結果報告'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-4272801401546098277</id><published>2009-06-26T17:41:00.023+09:00</published><updated>2012-05-25T15:08:49.240+09:00</updated><title type='text'>HTML Windowsライクなメニュー</title><content type='html'>各種ブラウザのコンテキストメニューの代わりに、&lt;br /&gt;&lt;br /&gt;カスタマイズしたWindowsライクなメニューを作成してみた。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://ykinventory.tonosama.jp/&quot;&gt;こちらからどうぞ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;また、MicroSoftのAPIを利用しているのでIE推奨とさせて頂く。</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/4272801401546098277/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/06/html-windows.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/4272801401546098277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/4272801401546098277'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/06/html-windows.html' title='HTML Windowsライクなメニュー'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-7754104348794191110</id><published>2009-06-11T10:24:00.022+09:00</published><updated>2012-05-25T15:10:28.684+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Alpha"/><category scheme="http://www.blogger.com/atom/ns#" term="DHTML"/><category scheme="http://www.blogger.com/atom/ns#" term="DXImageTransform"/><category scheme="http://www.blogger.com/atom/ns#" term="filter"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML"/><category scheme="http://www.blogger.com/atom/ns#" term="opacity"/><category scheme="http://www.blogger.com/atom/ns#" term="スタイルシートの要素を動的"/><category scheme="http://www.blogger.com/atom/ns#" term="透過"/><title type='text'>HTML 透過にするには</title><content type='html'>&lt;div&gt;&lt;br /&gt;スタイルシートを用いて、Webページを透過にする方法を調べてみた。&lt;br /&gt;&lt;br /&gt;その結果、IE系と非IE系とでは挙動が異なることが分かった。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IE系では、『filter』という属性に対して値を設定する。&lt;br /&gt;&lt;br /&gt;　CSSの記述例．&lt;br /&gt;&lt;br /&gt;　　　body {&lt;br /&gt;&lt;br /&gt;　　　　filter:progid:DXImageTransform.Microsoft.Alpha(Enabled=1,Style=0,Opacity=80)&lt;br /&gt;&lt;br /&gt;　　　}&lt;br /&gt;&lt;br /&gt;　JavaScriptの記述例．&lt;br /&gt;&lt;br /&gt;　　　document.getElementById(&#39;hoge&#39;).style.filter = &quot;progid:DXImageTransform.Microsoft.Alpha(Enabled=1,Style=0,Opacity=80)&quot;;&lt;br /&gt;&lt;br /&gt;　　　※Opacityの範囲は0～100で、数値が低くなるに連れて透明度が上がる。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;非IE系では、『opacity』という属性に対して値を設定する。&lt;br /&gt;&lt;br /&gt;　CSSの記述例．&lt;br /&gt;&lt;br /&gt;　　　body {&lt;br /&gt;&lt;br /&gt;　　　 opacity: 0.8&lt;br /&gt;&lt;br /&gt;　　　}&lt;br /&gt;&lt;br /&gt;　JavaScriptの記述例．&lt;br /&gt;&lt;br /&gt;　　　document.getElementById(&#39;hoge&#39;).style.opacity = 0.8;&lt;br /&gt;　　　※Opacityの範囲は0.0～1.0で、数値が低くなるに連れて透明度が上がる。&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/7754104348794191110/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/06/html.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/7754104348794191110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/7754104348794191110'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/06/html.html' title='HTML 透過にするには'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-5280766701065797057</id><published>2009-06-02T10:30:00.008+09:00</published><updated>2009-06-02T13:21:50.933+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android1.5"/><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="携帯"/><title type='text'>0から始めるAndroid1.5　～中級編　カレンダーアプリ～</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBN0I-wG_jG6-6uvJw29D_BVP8rhUh45TpG5tCgHcPmqI2a7HHEKXXn_2n7Ltgn5BNhQfXOsWDtH7wir8Bjfj6RsmHvLd6Mc7mcnP0CSsrjeFK629neH6u66tXxHMdsGNgCCOzd7y3STw/s1600-h/Image2.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 336px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBN0I-wG_jG6-6uvJw29D_BVP8rhUh45TpG5tCgHcPmqI2a7HHEKXXn_2n7Ltgn5BNhQfXOsWDtH7wir8Bjfj6RsmHvLd6Mc7mcnP0CSsrjeFK629neH6u66tXxHMdsGNgCCOzd7y3STw/s400/Image2.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5342562846393852434&quot; /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBN0I-wG_jG6-6uvJw29D_BVP8rhUh45TpG5tCgHcPmqI2a7HHEKXXn_2n7Ltgn5BNhQfXOsWDtH7wir8Bjfj6RsmHvLd6Mc7mcnP0CSsrjeFK629neH6u66tXxHMdsGNgCCOzd7y3STw/s1600-h/Image2.jpg&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPXzNR6Rv6cUDGNA2rDrCSFFH_A8xMnsSpbtSa9jEwWRu14f5zoBzMSQbsGTpSgcmnFJW1Plm3RR_og70Vd-Ot1rHR_2hhcHIbEQt1EDc2ihW1LjckaBxG3wgBVzEgcYUu-5GcsgiV1Mo/s1600-h/Image3.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 336px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPXzNR6Rv6cUDGNA2rDrCSFFH_A8xMnsSpbtSa9jEwWRu14f5zoBzMSQbsGTpSgcmnFJW1Plm3RR_og70Vd-Ot1rHR_2hhcHIbEQt1EDc2ihW1LjckaBxG3wgBVzEgcYUu-5GcsgiV1Mo/s400/Image3.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5342562844980902722&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPXzNR6Rv6cUDGNA2rDrCSFFH_A8xMnsSpbtSa9jEwWRu14f5zoBzMSQbsGTpSgcmnFJW1Plm3RR_og70Vd-Ot1rHR_2hhcHIbEQt1EDc2ihW1LjckaBxG3wgBVzEgcYUu-5GcsgiV1Mo/s1600-h/Image3.jpg&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAHpgurZGxKqpeOomVbW6mwYsXSt-DFOU_e35z9WRm6Y5sWM31R2KwNviWw1vXTzBZTVAsQg8OKuHYmXZgGbwUqNfY0eYUyLcL0SEWJtthF1OV2QtHl9wp-0BF6K6WvHwTHd6Nf7e2goc/s1600-h/Image4.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 336px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAHpgurZGxKqpeOomVbW6mwYsXSt-DFOU_e35z9WRm6Y5sWM31R2KwNviWw1vXTzBZTVAsQg8OKuHYmXZgGbwUqNfY0eYUyLcL0SEWJtthF1OV2QtHl9wp-0BF6K6WvHwTHd6Nf7e2goc/s400/Image4.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5342562838300508962&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;今回は、カレンダーアプリを作ってみることにした。&lt;div&gt;通常のカレンダーだと面白みがないので、&lt;/div&gt;&lt;div&gt;日をアラビア数字ではなく大字で表現して和風テーストを出してみることに。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;背景（LinearLayout）には侍という字を画像にしたイメージを設定して、&lt;/div&gt;&lt;div&gt;その上にTableLayoutを載せる。&lt;/div&gt;&lt;div&gt;TableLayout上に横長にTableRowを敷き詰める。&lt;/div&gt;&lt;div&gt;さらにTableRow上にImageButtonを敷き詰めればカレンダーの下地となるマトリックスが完成する。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;初期表示及び月切り替えイベント発生時、&lt;/div&gt;&lt;div&gt;GregorianCalendarから対象月のカレンダーを抽出して&lt;/div&gt;&lt;div&gt;それを元にImageButtonの背景画像を変更する。&lt;/div&gt;&lt;div&gt;日付が割り当てられない個所は、INVISIBLEに変更する。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;アプリのデモ画面も同じ方式で画像を割り当てていく。&lt;/div&gt;&lt;div&gt;静止画を連続して表示する為、以下のようにThreadに処理を登録しておく。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;final Runnable callback1 = new Runnable() {&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;   &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;@Override&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;   &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;public void run() {&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;    &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;//独自処理&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;    &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;demoClear();&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;   &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;}&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;};&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt; &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;・&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt; &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;・&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt; &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;・&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;final Handler handler = new Handler();&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;Thread thread = new Thread() {&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;   &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;@Override&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;   &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;public void run() {&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;    &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;try {&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;     &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;handler.post(callback1);&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;     &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;Thread.sleep(300);&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;     &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;handler.post(callback2);&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;     &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;Thread.sleep(200);&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;     &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt; &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;・&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;     &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt; &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;・&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;     &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; &quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt; &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;・&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;    &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;} catch (InterruptedException e) {&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;     &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;e.printStackTrace();&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;    &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;}&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;   &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;}&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;};&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;  &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;thread.start();&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;今回作成したアプリのデモは、以下にアップロードしている。&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://groups.google.co.jp/group/yk-inventory?hl=ja&quot;&gt;＜＜＜Google Group＞＞＞&lt;/a&gt;&lt;br /&gt;http://groups.google.co.jp/group/yk-inventory?hl=ja&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/5280766701065797057/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/06/0android15.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/5280766701065797057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/5280766701065797057'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/06/0android15.html' title='0から始めるAndroid1.5　～中級編　カレンダーアプリ～'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBN0I-wG_jG6-6uvJw29D_BVP8rhUh45TpG5tCgHcPmqI2a7HHEKXXn_2n7Ltgn5BNhQfXOsWDtH7wir8Bjfj6RsmHvLd6Mc7mcnP0CSsrjeFK629neH6u66tXxHMdsGNgCCOzd7y3STw/s72-c/Image2.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-7188833154234402212</id><published>2009-05-27T14:37:00.003+09:00</published><updated>2009-05-27T14:46:57.359+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ajax"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="prototype.js"/><category scheme="http://www.blogger.com/atom/ns#" term="非同期通信"/><title type='text'>Ajax覚え書き</title><content type='html'>Ajaxについて調査依頼があったので、メモ程度に残しておこう。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;＜＜特徴＞＞&lt;/b&gt;&lt;/div&gt;&lt;div&gt;　　＜長所＞&lt;/div&gt;&lt;div&gt;　　　　・様々なイベントハンドリングによるユーザビリティの向上&lt;/div&gt;&lt;div&gt;　　　　・非同期通信による通信待ち時間の軽減&lt;/div&gt;&lt;div&gt;　　　　・通信データ縮小によるサーバ、ネットワーク負荷の軽減&lt;/div&gt;&lt;div&gt;　　　　・SSLによる暗号通信が可能(「HTTP」を「HTTPS」に変更するのみ)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;　　＜短所＞&lt;/div&gt;&lt;div&gt;　　　　・通信中のURIが表示されない&lt;/div&gt;&lt;div&gt;　　　　・通信が任意のタイミングで発生する(通信の有無を確認しにくい)&lt;/div&gt;&lt;div&gt;　　　　・異なるドメイン間での通信が不可能&lt;/div&gt;&lt;div&gt;　　　　・クロスブラウザ問題(ブラウザによる仕様差)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;　　＜フレームワーク＞&lt;/div&gt;&lt;div&gt;　　　　・prototype.jsがメジャー。派生型も多数存在。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;　　＜フレームワーク意思決定支援システム＞&lt;/div&gt;&lt;div&gt;　　　　・Ajax Frameworks Decision Center&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;　　＜統合環境＞&lt;/div&gt;&lt;div&gt;　　　　・Google Web Toolkit&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/7188833154234402212/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/05/ajax.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/7188833154234402212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/7188833154234402212'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/05/ajax.html' title='Ajax覚え書き'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-2805774795734639475</id><published>2009-05-19T11:47:00.012+09:00</published><updated>2009-09-02T17:07:25.381+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android1.5"/><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="携帯"/><title type='text'>0から始めるAndroid1.5　～初級編　STEP2：公開の章～</title><content type='html'>Androidアプリを公開する為には、署名が必要となる。&lt;br /&gt;コマンドプロンプトから署名するよりも簡単に署名することができたので、&lt;br /&gt;Eclipseからの実行方法を紹介する。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Eclipse上で対象のプロジェクトを右クリックで選択して、&lt;br /&gt;Androidツール→Export Signed Application Package を選択する。&lt;div&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRlc8lVTRTU75j_LpKP-eVcFpFCj50kWVx6lSSaaLJ8AAX81fnxTBFGTCnkz7_0xfp3BpM4WyHVcPuiTpTuPgafnqYjCOu1uvgJJdOmSdzpx6-Updp9TV7oLSV9kB5RYYJPrYMUKFtfHI/s400/100.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 250px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5337389334049705250&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;選択したプロジェクトが対象となっていることを確認する。&lt;br /&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQBsYHwKzqe5WJIxhjZw7I0cWOUfoEgutoQ4SJxanzLZaXvP5pK9y83DB9mWfmHjJ7fazlJ2FTJHaScp8RZjNogD0VcmylLTGv3_T-uzwe4HvovVr97yvf0WBmVN2iIGSJcQpoHLPUNio/s400/101.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 250px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5337389337595641906&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Create new keystoreを選択する。&lt;br /&gt;ロケーション：今回作成する署名ファイルの保存先及びファイル名&lt;br /&gt;パスワード：署名ファイルのパスワード&lt;br /&gt;確認（パスワード確認）：署名ファイルのパスワード&lt;br /&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGuIrR5-XX5avhVMZ04GzHQNH6g_vo5Tr__E8qhwD4fqP8jVJNSE91dbFrZywn6dzaKsi0lc_65lZXA0itP6rbzo5JrDcsRqIqver2x1GX7M7ujL5dPZ1kDyw5l3Tpj0VP8G8hlUCt4Vo/s400/102.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 250px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5337389331410316578&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;エイリアス：署名の別名&lt;br /&gt;パスワード：エイリアスのパスワード&lt;br /&gt;確認（パスワード確認）：エイリアスのパスワード&lt;br /&gt;Validity(years)：使用期限&lt;br /&gt;First and Last Name：作者名&lt;br /&gt;Organizational Unit：組織単位名&lt;br /&gt;組織：組織名&lt;br /&gt;City or Locality：都市名または地域名&lt;br /&gt;State or Province：州名または地方名&lt;br /&gt;Country Code(XX)：国番号&lt;br /&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS5G2SfY8GJotXepeb_eWSDGHofzVYrIomS8Pe77VHFMbzkrhzY390mOOhaE111fs-aKIkqkvtuzBq6i61IBAt1oUTyfCAvLGAe2EydA3YY4hVeriQyP3pqTFzPzIcSCOU4jEgDlAVAOo/s400/103.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 250px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5337389326592502018&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Destination APK file：今回作成するアプリの保存先及びファイル名&lt;br /&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5R3U1BZZIstFh5bEjL64PbYKC4VmonmPc_7qUkSVrRZhaRbz4oaGTgYBm6Rf5yb7Qe3xC_VYkSD5VL2DSdw2yt-NdSvNhBaoPtSXR6VNLH9tKwQS02FLMkiP21OUlntG-8_vEqgk_c04/s400/104.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 250px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5337389325548483666&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;以上で署名付きアプリと署名ファイルが作成された。&lt;br /&gt;署名ファイルは、今後作成するアプリにも適用できるので保存しておく。&lt;br /&gt;署名付きアプリをEmulatorにインストールするには、&lt;br /&gt;コマンドプロンプトから %ANDROID_HOME%\tools配下 で以下のコマンドを入力する。&lt;br /&gt;adb install xxxxx.apk&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;そして、いよいよAndroid Marketに公開と言いたいところだがなんと有料なのだ。&lt;br /&gt;初回登録料として$25が徴収される。&lt;br /&gt;フリーウェアを公開するのに金を払うのは釈然としないので、&lt;br /&gt;今回作成したサンプルは、以下にアップロードすることにした。&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://groups.google.co.jp/group/yk-inventory?hl=ja&quot;&gt;＜＜＜Google Group＞＞＞&lt;/a&gt;&lt;br /&gt;http://groups.google.co.jp/group/yk-inventory?hl=ja&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/2805774795734639475/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/05/0android15step2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/2805774795734639475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/2805774795734639475'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/05/0android15step2.html' title='0から始めるAndroid1.5　～初級編　STEP2：公開の章～'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRlc8lVTRTU75j_LpKP-eVcFpFCj50kWVx6lSSaaLJ8AAX81fnxTBFGTCnkz7_0xfp3BpM4WyHVcPuiTpTuPgafnqYjCOu1uvgJJdOmSdzpx6-Updp9TV7oLSV9kB5RYYJPrYMUKFtfHI/s72-c/100.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-8311949377446442887</id><published>2009-05-15T17:18:00.010+09:00</published><updated>2009-05-18T15:25:57.811+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android1.5"/><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="携帯"/><title type='text'>0から始めるAndroid1.5　～初級編　STEP1：開発の章～</title><content type='html'>次は、プログラムに手を加えて簡単なアプリケーション開発に挑んでみる。&lt;div&gt;今回のポイントは以下の通りである。&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;１．簡単な画面レイアウトを作成する&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;２．イベントハンドリングを理解する（ボタン押下時）&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;３．アイコンを変更する&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;それでは、『占いアプリ』を例題として作成してみよう。&lt;/div&gt;&lt;div&gt;機能として、ボタンを押下すれば占いの結果を表示するだけのシンプルなものとする。&lt;/div&gt;&lt;div&gt;また、画面遷移は行わないものとする。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;１．簡単な画面レイアウトを作成する&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;画面には、タイトル・ボタン・占い結果を配置する。&lt;/div&gt;&lt;div&gt;タイトル及び占い結果は、読み取り専用なのでラベル(TextView)とする。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNxfSg48rzXC_zC_q-9qzXqxdQ4bZvZJEeVynyv7O-m7yHtGiFXZc50aeMpI9_nl_hDfBT09CIDBQHmw3ldK0428JsiS2mS1yp9DYYqvzdl1gWb_W8fvasSYe_dR1rDeliEP_d1d1czPg/s400/001.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 250px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5337041651439492322&quot; /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;２．イベントハンドリングを理解する&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;onClickイベントの挙動をonCreate処理内で実装するので、&lt;/div&gt;&lt;div&gt;初めて見たときは違和感を感じてしまった。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;スタティックなインターフェース内で抽象メソッドを宣言して、&lt;/div&gt;&lt;div&gt;その処理を業務アプリケーションで実装するという手法があることすら知らなかったからである。&lt;/div&gt;&lt;div&gt;最初は以下の要点だけでも掴めていればいいだろう。&lt;/div&gt;&lt;div&gt;画面項目を取得して、その項目に対するイベントハンドラーを構える。&lt;/div&gt;&lt;div&gt;そして、イベント発生時の処理を記述する。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2mRX1nzn4dCvXfgacGr-pBoq1BG0EpkpeMJfx3oQ0hq7sGk9nXutCc8dvJJM4tgQn5QQgbhaNKES-L5zUGV-POOeY3-AixCEisjXplc437BpRhmvPz2Kc6gGYbm7m88A4tyUzvGTrUkA/s400/002.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 250px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5337041652371661106&quot; /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;３．アイコンを変更する&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;メニュー画面に表示されるアイコンも自分専用に変更したいので、&lt;/div&gt;&lt;div&gt;アイコンを作成できるフリーソフトを探してみた。&lt;/div&gt;&lt;div&gt;ico形式のアイコン作成ソフトと、&lt;/div&gt;&lt;div&gt;それをpng形式に変換できるソフトがあったので利用させて頂くことにした。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.vector.co.jp/soft/dl/win95/amuse/se346624.html&quot;&gt;＜＜＜アイコン作成ソフト＞＞＞&lt;/a&gt;&lt;/div&gt;&lt;div&gt;http://www.vector.co.jp/soft/dl/win95/amuse/se346624.html&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.vector.co.jp/soft/win95/art/se242146.html&quot;&gt;＜＜＜画像形式変換ソフト＞＞＞&lt;/a&gt;&lt;/div&gt;&lt;div&gt;http://www.vector.co.jp/soft/win95/art/se242146.html&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;作成したアイコンファイルをres/drawable配下に格納する。&lt;/div&gt;&lt;div&gt;ファイル名を変更した場合には、AndroidManifest.xmlのアプリケーションタグにある&lt;/div&gt;&lt;div&gt;icon属性をそれに合わせて変更するだけでよい。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-VtN6qhqusnskCv29-DVPimmf7_nI_GTuFkn10MZ_xNXGhEUcd7tDcwgApRjn9mcE_dti-W8b1VQ7yXAvI2SSTs8RGwaOoLE0vgeWrWBIezfGB7ufIHJZ-9UAXuykvKhCVxMiLOSvKYE/s400/003.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 336px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5337044244832104178&quot; /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDHtustx2BiCwsEswonjLFpLf5TIMyNfq6kGpZG7-GTNGMheu470P4Raxll6jjMMsVXg4lLQ_-ehN4Of-uWoSlmJReJHf0ohPSY87ssFh8qCMZkl7M3O8Xglfjl5-mVdudcJgt1BOVRpA/s400/004.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 336px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5337044247753500946&quot; /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjArnINz0zYLhCZiq9-57tuKKRI5jMIWVCTc-BOpdeu0a_OkbegZzJ_zHQkOXBAOJDbrojiDJ39DL9RkIFq898XU8pZKVwJjd691bYnPT0VTqwZGDzps1DWCZpDV7QWAgi6tfz2A_xK-ps/s400/005.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 336px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5337044249177231954&quot; /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/8311949377446442887/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/05/0android15step1.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/8311949377446442887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/8311949377446442887'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/05/0android15step1.html' title='0から始めるAndroid1.5　～初級編　STEP1：開発の章～'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNxfSg48rzXC_zC_q-9qzXqxdQ4bZvZJEeVynyv7O-m7yHtGiFXZc50aeMpI9_nl_hDfBT09CIDBQHmw3ldK0428JsiS2mS1yp9DYYqvzdl1gWb_W8fvasSYe_dR1rDeliEP_d1d1czPg/s72-c/001.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-6311622363939717847</id><published>2009-05-14T14:01:00.007+09:00</published><updated>2009-05-14T17:27:33.292+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android1.5"/><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="インストール"/><category scheme="http://www.blogger.com/atom/ns#" term="携帯"/><title type='text'>0から始めるAndroid1.5　～HelloWorld編～</title><content type='html'>まずは、簡単なサンプルを作ってEmulatorで動作確認をしてみる。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;1.　プロジェクトの作成&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Eclipseを起動して、Javaパースペクティブを開く。&lt;/div&gt;&lt;div&gt;パッケージエクスプローラーで右クリックして、&lt;/div&gt;&lt;div&gt;新規⇒プロジェクト⇒Androidプロジェクトを選択する。&lt;/div&gt;&lt;div&gt;プロジェクト名：任意の名前（例：Sample01）&lt;/div&gt;&lt;div&gt;ビルドターゲット：Android1.5&lt;/div&gt;&lt;div&gt;アプリケーション名：任意の名前（例：Sample01）&lt;/div&gt;&lt;div&gt;パッケージ名：任意の名前（例：com.android.sample01）&lt;/div&gt;&lt;div&gt;CreateActivity：任意の名前（例：Sample01）&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;2.　AVD Managerの設定&lt;/span&gt;&lt;/div&gt;&lt;div&gt;ウィンドウ⇒Android AVD Managerを開き、AVDを設定する。&lt;/div&gt;&lt;div&gt;名前：任意の名前（例：Android1.5）&lt;/div&gt;&lt;div&gt;ターゲット：Android1.5&lt;/div&gt;&lt;div&gt;SDCard：ブランク&lt;/div&gt;&lt;div&gt;Skin：Default&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;3.　実行構成の設定及び実行&lt;/span&gt;&lt;/div&gt;&lt;div&gt;実行⇒実行構成を開く。&lt;/div&gt;&lt;div&gt;Androidアプリケーションを右クリックして、新規を選択する。&lt;/div&gt;&lt;div&gt;名前：任意の名前（例：Sample01）&lt;br /&gt;&lt;/div&gt;&lt;div&gt;プロジェクト：１で作成したプロジェクトを選択&lt;/div&gt;&lt;div&gt;起動：１のパッケージを選択&lt;/div&gt;&lt;div&gt;最後に実行ボタンを押下すれば、Emulatorが起動する。&lt;/div&gt;&lt;div&gt;※ Emulatorが起動して、待ち受け状態になるまでには多少時間がかかる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;メニューにアイコンが追加されて、&lt;/div&gt;&lt;div&gt;画面に「Hello World, Sample01!」が表示されれば成功である。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAMxXS-xRc771smTRVRRgrRjfdqvQiMZWJ2eRnp4TwlCbEO3sw_oIqrjOe2GntKD-ZaOnzRWyQJ1bU9J3Ky56m3sfndygD2PHZmBDc2U5j9nfSChhpSqJ6h39mvE7MmUg1LFrMG7dx4ME/s400/Image1.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 336px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5335591566612679666&quot; /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_7mDj8tyfCFlMDxXw19y7sGcDinZ4ka5N-NaIoX7CVijJMSb-czQw97n5sYjCE_5_JtQ28tr3yUj6tv5PYcnnNguu_esPYD_e4Kp9A3YDy0EVui6hwigu1qwQE5mbjo7Fj0FoeaIt0ls/s400/Image2.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 336px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5335591567944943842&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMiPGyoX1OOdMu3CJdjeZjwgl7BvlSz9zOEuk2iWxCBFn-WC6oiE97HD3EliaD-EGyRvU6LGU4ytbYVLbDk6Lyz62NuW5VVvkVr8ZMEpQTk5gzfToHYKKJQym4gNpDwm6PoFFWUcC2rx0/s400/Image3.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 336px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5335591569994249314&quot; /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/6311622363939717847/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/05/0android15helloworld.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/6311622363939717847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/6311622363939717847'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/05/0android15helloworld.html' title='0から始めるAndroid1.5　～HelloWorld編～'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAMxXS-xRc771smTRVRRgrRjfdqvQiMZWJ2eRnp4TwlCbEO3sw_oIqrjOe2GntKD-ZaOnzRWyQJ1bU9J3Ky56m3sfndygD2PHZmBDc2U5j9nfSChhpSqJ6h39mvE7MmUg1LFrMG7dx4ME/s72-c/Image1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-1530111206658088151</id><published>2009-05-14T11:25:00.006+09:00</published><updated>2009-05-14T17:27:15.126+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android1.5"/><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="インストール"/><category scheme="http://www.blogger.com/atom/ns#" term="携帯"/><title type='text'>0から始めるAndroid1.5　～インストール編～</title><content type='html'>まずは開発環境を構築するところから始めよう。&lt;div&gt;以下をインストールすれば最低限の環境は整う。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;＜＜＜　JDK6　＞＞＞&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a href=&quot;http://java.sun.com/javase/downloads/index.jsp&quot;&gt;http://java.sun.com/javase/downloads/index.jsp&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;＜＜＜　Eclipse3.4　＞＞＞&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.eclipse.org/downloads/index.php&quot;&gt;http://www.eclipse.org/downloads/index.php&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;＜＜＜　Android1.5　＞＞＞&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://android-developers.blogspot.com/2009/04/getting-ready-for-android-15.html&quot;&gt;http://android-developers.blogspot.com/2009/04/getting-ready-for-android-15.html&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;※ダウンロードして解凍が終われば、&lt;/div&gt;&lt;div&gt;Eclipseを起動して、&lt;/div&gt;&lt;div&gt;Preferences⇒Android⇒SDK Locationに&lt;/div&gt;&lt;div&gt;AndroidSDKを解凍した場所を設定する。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;＜＜＜　EclipsePlugin:Android　＞＞＞&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://dl-ssl.google.com/android/eclipse/site.xml&quot;&gt;http://dl-ssl.google.com/android/eclipse/site.xml&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;※インストールは、Eclipseを起動して&lt;/div&gt;&lt;div&gt;Help⇒Software Updates⇒Available SoftWare⇒Add Site&lt;/div&gt;&lt;div&gt;にて行う。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;英語が苦手な方は、以下のPluginもインストールする。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;＜＜＜　EclipsePlugin:Pleiades(日本語化)　＞＞＞&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://mergedoc.sourceforge.jp/&quot;&gt;http://mergedoc.sourceforge.jp/&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;これで準備が整った。&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/1530111206658088151/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/05/0android15_14.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/1530111206658088151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/1530111206658088151'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/05/0android15_14.html' title='0から始めるAndroid1.5　～インストール編～'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-4630048346151824156</id><published>2009-05-14T11:01:00.002+09:00</published><updated>2009-05-15T10:23:37.147+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android1.5"/><category scheme="http://www.blogger.com/atom/ns#" term="Docomo"/><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="携帯"/><category scheme="http://www.blogger.com/atom/ns#" term="発売日"/><title type='text'>0から始めるAndroid1.5　～序章編～</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot;  style=&quot; ;font-family:&#39;MS PGothic&#39;;&quot;&gt;&lt;div style=&quot;border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; &quot;&gt;Android携帯の日本での発売日が間近となってきた。&lt;div&gt;早くて2009年06月にもNTT Docomoから発売される予定である。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;今までは携帯ユーザ側からの視点で、&lt;/div&gt;&lt;div&gt;レスポンスが悪いだの、&lt;/div&gt;&lt;div&gt;ユーザビリティーに欠けるだの、&lt;/div&gt;&lt;div&gt;デザインがダサいだの&lt;/div&gt;&lt;div&gt;とボヤいていたが、&lt;/div&gt;&lt;div&gt;そう！！&lt;/div&gt;&lt;div&gt;自分で開発すればいいのだ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;そうすれば、世界に一つしか無い自分専用のアプリも作れる。&lt;/div&gt;&lt;div&gt;無論、そんなものを配布すれば&lt;/div&gt;&lt;div&gt;周囲（ユーザ）からは好き勝手な酷評を並びたてられるだろうが・・・&lt;/div&gt;&lt;div&gt;しかしである、&lt;/div&gt;&lt;div&gt;発売前の今ならば携帯でお馴染みのアプリでさえも、&lt;/div&gt;&lt;div&gt;作ってしまえばパイオニアになれるかも知れない。&lt;/div&gt;&lt;div&gt;そんな淡い夢を見ながら、配布を目指して頑張ろう。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiubTghWDWcdlRq-myEuwKGTHrWiMQIVTJ_E1C7abQ7xu3xI5uRC1baJlsPDq6Rqa7B3hKEtKJ0YuvmeePO1DLsq_lRLrbPOLWGX_VhwEpw7iEBYPQKFaCVPdFnw7taE5rE6ukpM_0vzzQ/s400/magic.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 315px; height: 400px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5335854610620454098&quot; /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/4630048346151824156/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/05/0android15.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/4630048346151824156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/4630048346151824156'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/05/0android15.html' title='0から始めるAndroid1.5　～序章編～'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiubTghWDWcdlRq-myEuwKGTHrWiMQIVTJ_E1C7abQ7xu3xI5uRC1baJlsPDq6Rqa7B3hKEtKJ0YuvmeePO1DLsq_lRLrbPOLWGX_VhwEpw7iEBYPQKFaCVPdFnw7taE5rE6ukpM_0vzzQ/s72-c/magic.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-6597243411611684311</id><published>2009-04-07T15:34:00.005+09:00</published><updated>2009-04-07T16:17:55.275+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="インデックス"/><category scheme="http://www.blogger.com/atom/ns#" term="チューニング"/><category scheme="http://www.blogger.com/atom/ns#" term="ヒント"/><title type='text'>Oracle インデックスは有効なのか</title><content type='html'>&lt;div&gt;本件のタイトルが意味するところは２つあり、&lt;/div&gt;&lt;div&gt;１つはインデックスを作成してみたはいいもののそのインデックスが&lt;/div&gt;&lt;div&gt;オプティマイザで有効になっているか否かを確認する。&lt;/div&gt;&lt;div&gt;もう１つは高速化を狙ったインデックスが意味を成していないのではないか、というものである。&lt;/div&gt;&lt;div&gt;前者を確認するにはSQLの冒頭に「explain plan for」と記述して、&lt;/div&gt;&lt;div&gt;その後にOracleの実行計画を参照する。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;SQL&gt; explain plan for&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  2  select&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  3    *&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  4  from&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  5    ZZZ_TABLE&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  6  where&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  7    CLM01 = &#39;001&#39; AND&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  8    CLM02 = &#39;1&#39;;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;解析されました。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;SQL&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;SQL&gt; @C:\oracle\product\10.2.0\db_2\RDBMS\ADMIN\UTLXPLS.SQL&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;PLAN_TABLE_OUTPUT                                                                                   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;----------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;Plan hash value: 2565712139                                                                         &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;                                                                                                    &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;-------------------------------------------------------------------------------------------         &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;| Id  | Operation                   | Name        | Rows  | Bytes | Cost (%CPU)| Time     |         &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;-------------------------------------------------------------------------------------------         &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;|   0 | SELECT STATEMENT            |             |     1 |   510 |     1   (0)| 00:00:01 |         &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;|   1 |  TABLE ACCESS BY INDEX ROWID| ZZZ_TABLE   |     1 |   510 |     1   (0)| 00:00:01 |         &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;|*  2 |   INDEX UNIQUE SCAN         | ZZZ_TABLEI0 |     1 |       |     0   (0)| 00:00:01 |         &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;-------------------------------------------------------------------------------------------         &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;                                                                                                    &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;Predicate Information (identified by operation id):                                                 &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;PLAN_TABLE_OUTPUT                                                                                   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;----------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;---------------------------------------------------                                                 &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;                                                                                                    &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;   2 - access(&quot;CLM01&quot;=&#39;001&#39; AND &quot;CLM02&quot;=1)                                        &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;14行が選択されました。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;上記の例を見ると、実行計画に「INDEX UNIQUE SCAN」とあるが、&lt;/div&gt;&lt;div&gt;これはインデックスを利用したことを表していて、&lt;/div&gt;&lt;div&gt;これが「TABLE ACCESS FULL」となっていると、インデックスが利用されずに&lt;/div&gt;&lt;div&gt;テーブルを総なめしているということになる。&lt;/div&gt;&lt;div&gt;Oracleのオプティマイザの判断により、インデックスを利用したSQLを発行したにも&lt;/div&gt;&lt;div&gt;関わらずそのような結果になることもある。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;では、Oracleのオプティマイザのジャッジは正しかったのか。&lt;/div&gt;&lt;div&gt;ヒント文を利用すれば、明示的にインデックス検索や全表検索が可能となる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;select&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  /*+ INDEX(ZZZ_TABLE ZZZ_TABLEI0) */ *&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;from&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  ZZZ_TABLE&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;where&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  CLM01 = &#39;001&#39; AND&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  CLM02 = &#39;1&#39;;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;select&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  /*+ FULL ZZZ_TABLE */ *&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;from&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  ZZZ_TABLE&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;where&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  CLM01 = &#39;001&#39; AND&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;  CLM02 = &#39;1&#39;;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 51);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/6597243411611684311/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/04/oracle.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/6597243411611684311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/6597243411611684311'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/04/oracle.html' title='Oracle インデックスは有効なのか'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-1652126736694757663</id><published>2009-03-17T16:08:00.004+09:00</published><updated>2009-03-17T17:00:24.348+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CheckStyle"/><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Sun"/><title type='text'>Java CheckStyleのススメ</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;courier new&#39;;&quot;&gt;世の中には、ルールというものが存在する。&lt;br /&gt;ルールが存在するからこそ、自由や安心を得られる。&lt;br /&gt;プロジェクト開発においても同様に様々なルールがあり、&lt;br /&gt;それを遵守するからこそ品質を保障できると考えられている。&lt;br /&gt;その中でプログラマには、コーディング規約の遵守が義務付けられるのだが、&lt;br /&gt;規約内容が希薄であったり、曖昧な表現で記載されていることも少なくない。&lt;br /&gt;また、開発の途中でルールが制定されるなんてことも頻繁にある。&lt;br /&gt;プログラマにとっては、その対応だけで無駄な労力を使うことになってしまう。&lt;br /&gt;そんな時に役立つのが、｢CheckStyle｣である。&lt;br /&gt;このプラグインにコーディング規約を設定することで、&lt;br /&gt;プロジェクト全体で統一感のある開発をスムーズに行うことが可能となる。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;今回は、SunのCheckStyleを利用して、&lt;br /&gt;CheckStyle対応前と対応後のプログラムを比較してみよう。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;courier new&#39;;&quot;&gt;＜修正前＞&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;courier new&#39;;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;courier new&#39;;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaRYhuI2QN-W9mv7cwwWrIwzkEXr-c0itQclcuT4jB7PrwXibqZCF4cKDvO4cad92y-5y-0N9YOJW052zv3U00vuscr1TlFUrhQo-PNydTqr4s7X_M9v-ldiHd9QYgS6OOnPzIWz00JgQ/s400/001.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 260px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5314063125870888930&quot; /&gt;&lt;br /&gt;1行目:最終行が改行されていない。&lt;br /&gt;3行目:・Javadocコメントがない。&lt;br /&gt;　　　・ファイナライズされていない。&lt;br /&gt;　　　・publicなコンストラクタが存在する。&lt;br /&gt;　　　　(public staticなメソッドしかないのでUtilityクラスと判断された為)&lt;br /&gt;&lt;br /&gt;4～20行目:インデントがタブとなっている。&lt;br /&gt;4行目:・Javadocコメントがない。&lt;br /&gt;　　　・パラメータがファイナライズされていない。&lt;br /&gt;　　　・[]の位置が不正。&lt;br /&gt;5,7行目:プログラム中にベタで値が登場している。&lt;br /&gt;　　　　(ファイナライズした変数(or定数)を使用しなくてはいけない)&lt;br /&gt;　　　　但し、1や2はベタでもOKの模様。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;courier new&#39;;&quot;&gt;＜修正後＞&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7vc-SNo7ldgpEu7oZjarx-tD199oXzU_1YnmZlU4BQFv3bXuZGzYUHx-0u3w6Z7n3dJoj59R2e2wcx8zNmvIl5UgFn9LsuJIGLSco_Oz5PF5DhMztIrW_hM7J85YdnNUSab57C5kBLNY/s400/002.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 334px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5314063146140033810&quot; /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/1652126736694757663/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/03/java-checkstyle.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/1652126736694757663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/1652126736694757663'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/03/java-checkstyle.html' title='Java CheckStyleのススメ'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaRYhuI2QN-W9mv7cwwWrIwzkEXr-c0itQclcuT4jB7PrwXibqZCF4cKDvO4cad92y-5y-0N9YOJW052zv3U00vuscr1TlFUrhQo-PNydTqr4s7X_M9v-ldiHd9QYgS6OOnPzIWz00JgQ/s72-c/001.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-1602754278183145754</id><published>2009-01-19T14:20:00.005+09:00</published><updated>2009-03-11T16:50:22.320+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="yahoo"/><category scheme="http://www.blogger.com/atom/ns#" term="ブログ"/><category scheme="http://www.blogger.com/atom/ns#" term="ランキング"/><category scheme="http://www.blogger.com/atom/ns#" term="上位"/><category scheme="http://www.blogger.com/atom/ns#" term="検索エンジン"/><title type='text'>検索エンジン　検索結果に表示させるには</title><content type='html'>このブログは、blogger.comから提供されているサービスを利用して、&lt;div&gt;ドメインの授与、サイトの作成、Webへの公開を果たしているのだが、&lt;/div&gt;&lt;div&gt;公開してやはり気になるのは、検索エンジンにHitするか否かである。&lt;/div&gt;&lt;div&gt;初日に、Google, Yahoo, Live Search(MSN)のそれぞれで検索してみたが、&lt;br /&gt;&lt;/div&gt;&lt;div&gt;いずれもHitしなかった。&lt;/div&gt;&lt;div&gt;恐らく、3日あればこのサイトも検索対象として認めてもらえるものと思っていた。&lt;/div&gt;&lt;div&gt;3日後、同じように各社の検索エンジンで試してみると、HitしたのはGoogleのみ。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;これは、察するにGoogleとblogger.comが資本関係にあるから、&lt;/div&gt;&lt;div&gt;もしくはGoogleの検索エンジンが他とは違った独自のアルゴリズムを展開しているからの&lt;/div&gt;&lt;div&gt;いずれかだと思われる。&lt;/div&gt;&lt;div&gt;そして、一週間が経過しても結果は同じだった。&lt;/div&gt;&lt;div&gt;このままだと進展がなさそうだったので、調査することにした。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;検索結果に表示させるには、２つの方法があることが分かった。&lt;/div&gt;&lt;div&gt;１つは、各社の自動巡回している検索ロボットが対象のサイトを認識するまで待機するという方法。&lt;/div&gt;&lt;div&gt;もう１つは、各社に対してURLを提示する方法。&lt;/div&gt;&lt;div&gt;もちろん、後者の方が手続きが早いのでYahoo, Live Search(MSN)のそれぞれに&lt;/div&gt;&lt;div&gt;当サイトのURLを送信した。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;＜各社検索エンジンのURL登録＞&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;Yahoo&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://submit.search.yahoo.co.jp/add/request&quot;&gt;http://submit.search.yahoo.co.jp/add/request&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Google&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.google.co.jp/addurl/?hl=ja&amp;amp;continue=/addurl&quot;&gt;http://www.google.co.jp/addurl/?hl=ja&amp;amp;continue=/addurl&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Live Search(MSN)&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://search.msn.co.jp/docs/submit.aspx&quot;&gt;http://search.msn.co.jp/docs/submit.aspx&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ちなみに余談であるが、検索結果の上位にランキングさせる為にはコツがある。&lt;/div&gt;&lt;div&gt;ある法則（キーワードをサイト内に散らばせる等）を満たすと、&lt;/div&gt;&lt;div&gt;そのキーワードに対する検索結果の上位を獲得することができる。&lt;/div&gt;&lt;div&gt;但し、モノには限度があり検索エンジンの管理者から違法だと判断されると、&lt;/div&gt;&lt;div&gt;そのサイトは検索対象から除外されることになる。&lt;/div&gt;&lt;div&gt;検索上位を狙ったビジネスも展開されていて、3位以内にランキングされないと&lt;/div&gt;&lt;div&gt;廃業に追い込まれるようなケースもある。&lt;/div&gt;&lt;div&gt;また、合法的に運営しているつもりが違法だと判断されて廃業に追い込まれるケースもある。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/1602754278183145754/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/01/blog-post_19.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/1602754278183145754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/1602754278183145754'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/01/blog-post_19.html' title='検索エンジン　検索結果に表示させるには'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2420752830339668585.post-9144872499895855971</id><published>2009-01-14T16:51:00.009+09:00</published><updated>2009-03-11T16:50:38.556+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GC"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="チューニング"/><category scheme="http://www.blogger.com/atom/ns#" term="メモリリーク"/><title type='text'>Java GCチューニング</title><content type='html'>あるプロジェクトにて、いつものように朝出勤するとサポート担当者が&lt;br /&gt;&lt;div&gt;慌ただしく電話対応に追われていた。&lt;/div&gt;&lt;div&gt;話を伺ってみると、昨日未明にアプリケーションサーバがシステムダウンが発生したとのこと。&lt;/div&gt;&lt;div&gt;その場は、サーバをリブートしてシステムを復旧することができたが、&lt;/div&gt;&lt;div&gt;原因は調査しなくてはならない。&lt;/div&gt;&lt;div&gt;ログを解析すると、メモリリークが発生したことが原因なのはすぐに分かったが、&lt;/div&gt;&lt;div&gt;メモリリークが発生した原因が分からない。&lt;/div&gt;&lt;div&gt;夜間バッチの処理中にメモリリークが発生しているが、&lt;/div&gt;&lt;div&gt;日次処理であり今までは問題なく稼働していた。&lt;/div&gt;&lt;div&gt;急激にトランザクションデータが増加したわけでもない。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;そもそも、メモリリークは何故発生するのだろうか。&lt;/div&gt;&lt;div&gt;Javaの一番の特徴は、GC(ガベージ・コレクション)にあると言っても過言ではない。&lt;/div&gt;&lt;div&gt;通常、開発者はメモリ管理を意識してコーディングする必要があるが、&lt;/div&gt;&lt;div&gt;Javaに関しては開発者に代わってJVMが任意のタイミングでGCを発生させてくれるので、&lt;/div&gt;&lt;div&gt;基本的に開発者はメモリ領域を意識せずにコーディングに専念できる。&lt;/div&gt;&lt;div&gt;他言語からJava開発にシフトしてきた開発者の中には、&lt;/div&gt;&lt;div&gt;メモリ管理をせずにはいられない人もいて、明示的にGCを発生させるコードを記述する人もいる。&lt;/div&gt;&lt;div&gt;その際は、使用したオブジェクトを初期化しないとGCの対象にはならない。&lt;/div&gt;&lt;div&gt;どういうことかと言うと、JVMは現時点で利用されているメモリが必要かどうか判断できない。&lt;/div&gt;&lt;div&gt;メモリに格納されているデータを全てクリアしてしまうと、&lt;/div&gt;&lt;div&gt;今後の処理で必要となるデータまで削除されてしまう可能性があるからである。&lt;/div&gt;&lt;div&gt;Webアプリケーションでは、アプリケーションレベル・セションレベルのデータを&lt;/div&gt;&lt;div&gt;保持しておかなくてはならない。&lt;/div&gt;&lt;div&gt;では、GCが発生する任意のタイミングとはいつなのか。&lt;/div&gt;&lt;div&gt;JDK1.2以降では、ヒープ領域としてNEW・OLDの各領域が用意されていて、&lt;/div&gt;&lt;div&gt;NEW領域がいっぱいになった段階でGC（&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px; font-family:&#39;ms pgothic&#39;;&quot;&gt;ScavengeGC&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: normal; font-family:Georgia;&quot;&gt;）が走る。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;OLD領域には、&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px; font-family:&#39;ms pgothic&#39;;&quot;&gt;ScavengeGCで32回生き残ったNEW領域のオブジェクトが移行する。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;そして、OLD領域がいっぱいになるとFullGCが走る。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;これがメモリリークの原因である。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;今回の事例で何故メモリリークが発生したのか。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;まず、アプリケーションサーバが起動したタイミングでシステム全体で利用するリソースは&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;アプリケーションレベルで保存されるので、後にOLD領域に移行することが確定する。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;次に通常業務はトラフィックな状態になると、セションデータもOLD領域に移行しやすくなる。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;さらに、日次業務である夜間バッチは大量データを処理する為、一時データもOLD領域に&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;移行しやすくなる。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;日々、この状態が続くとOLD領域がいっぱいになり、FullGCが頻発して最終的には&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;OutOfMemoryでシステムダウンすることとなる。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;メモリリークを回避するにはどうすればいいのか。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;全体のヒープ領域を拡張するという方法も考えられるが、&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;コストが掛かる上に成果が上がらないということも考えられるので&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;安易に拡張すべきではない。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;NEW領域のサイズを変更してはどうだろうか。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;拡大させると性能を向上させるというメリットがあるが、&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;メモリ効率を低下させるというデメリットも併せ持つ。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;最大限に活かすには、ヒープ全体の1/3～1/4が妥当である。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;NEW領域のEdenとSurvivor（From,To）の比率を変えてみてはどうだろうか。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;オブジェクトは、New:Eden→New:Survivor(From) →New:Survivor(To)→OLD&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;の経路を辿るのだが、Survivor領域が小さいとScavengeGCが32回走るまでに&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;OLD領域に移行してしまう。&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;アプリケーションの特性を考えて、この比率を変えていくのが得策である。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;どうやって解消したのか。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;GCのチューニングで解決するのがベストであるが、&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;同様の事象が発生することも懸念されるので定期的（業務時間外で日次or週次のタイミング）に&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;アプリケーションサーバをリブートするという運用で落ち着いた。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;システム稼働当初は、チューニングを行った上でGCの挙動を監視する運用を怠ってはいけないと&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;痛感させられる出来事であった。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;＜実行オプション＞&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;&lt;div&gt;-Xms : 初期ヒープサイズ（全体）&lt;/div&gt;&lt;div&gt;-Xmx : 最大ヒープサイズ（全体）&lt;/div&gt;&lt;div&gt;-Xmn(-XX:NewSize) : New世代領域サイズ&lt;/div&gt;&lt;div&gt;-XX:MaxNewSize : New世代領域サイズ&lt;/div&gt;&lt;div&gt;-XX:NewRatio : New世代領域とOld世代領域の比率（Old世代領域／New世代領域）&lt;/div&gt;&lt;div&gt;-XX:SurvivorRatio : New世代領域とSurvivor領域の比率（Eden領域／From領域）&lt;/div&gt;&lt;div&gt;-XX:TargetSurvivorRatio : New世代領域GC後のFrom領域内オブジェクトの割合目標&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-verbose:gc(-verbosegc) : GC情報（簡易）&lt;/div&gt;&lt;div&gt;-Xloggc:filename : GC情報（ファイルへ出力）&lt;/div&gt;&lt;div&gt;-XX:+PrintGCDetails : GC情報（詳細）&lt;/div&gt;&lt;div&gt;-Xverbosegc : GC情報（詳細）を出力（HP-UX JVMのみ）&lt;/div&gt;&lt;div&gt;-XX:+PrintTenuringDistribution : オブジェクトの年齢情報&lt;/div&gt;&lt;div&gt;-XX:+TraceGen0Time : New世代領域の累積GC時間、GC回数、平均GC時間&lt;/div&gt;&lt;div&gt;-XX:+TraceGen1Time : Old世代領域の累積GC時間、GC回数、平均GC時間&lt;/div&gt;&lt;div&gt;-XX:+PrintGCTimeStamps : GCのタイムスタンプ&lt;/div&gt;&lt;div&gt;-XX:+PrintHeapAtGC : GC前後の詳細なヒープ情報&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;＜GCログ解析ツール＞&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;                               &lt;a href=&quot;http://www.tagtraum.com/gcviewer-screenshot.html&quot;&gt;GCViewer&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;                                &lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnuLKgEbha6uFAbp7AYXbR2IB7YY2ej_3S_k_FI4lJoxsBmRGxpr4RvX-GFvujOl5hGkbrOmrTNGwky2nyGg1glsI_ovDvdc8QinSwKgo0_JtbhgzMuKOrBAXD8vWz0rK5VgbJzdk-POY/s320/003.jpg&quot; style=&quot;cursor:pointer; cursor:hand;width: 320px; height: 245px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5291750881649868178&quot; /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; line-height: 20px;font-family:&#39;ms pgothic&#39;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yk-inventory.blogspot.com/feeds/9144872499895855971/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yk-inventory.blogspot.com/2009/01/java-gc.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/9144872499895855971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2420752830339668585/posts/default/9144872499895855971'/><link rel='alternate' type='text/html' href='http://yk-inventory.blogspot.com/2009/01/java-gc.html' title='Java GCチューニング'/><author><name>yk（ワイケイ）</name><uri>http://www.blogger.com/profile/14475663422680815536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM44HWuGQZKKnfH38RYWyWo3VaqpNKgQcheMb_jSlu40mJpkDoJbd32-Wv_CT7i39a3ZRRYvPUQ9EdmOBYieCgssR0B_bXLU83oYaIc-4B6xkTk9fML6SZJe_9W8nnLbY/s220/beach_flag2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnuLKgEbha6uFAbp7AYXbR2IB7YY2ej_3S_k_FI4lJoxsBmRGxpr4RvX-GFvujOl5hGkbrOmrTNGwky2nyGg1glsI_ovDvdc8QinSwKgo0_JtbhgzMuKOrBAXD8vWz0rK5VgbJzdk-POY/s72-c/003.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>