Android、いかがですか。 今日もOut Of Memory、出していますでしょうか。 そんなあなたに朗報です。 少しでもメモリにやさしいプログラムを。 今日はSoftReferenceのお話です。 トレードオフ Androidで(というよりもJavaで)パフォーマンスに最も影響を与えるのはインスタンス生成の部分ではないでしょうか。 ループの中でインスタンスを生成しようものなら、たちまちあなたのUIは機敏さを失うことになるでしょう。 インスタンス生成はGCの源です。ストップザワールドを少しでも避けるためには極力newなどは控えなければなりません。 となると、インスタンスを作らないことが究極なのですが、全く作らないというわけにはいきません。ならば、一度作ったインスタンスは再利用しようではありませんか。 その時に役に立つのがキャッシュです。一度作ったインスタンスはキャッシュに保持し
こんにちは。daichi1128です。 前回はHTTP通信をしてTwitterのタイムラインを取得、表示しました。 AndroidでTwitterのタイムラインを取得する【XmlPullParser】 | Techfirm Android Lab ですが、前回までではユーザのアイコンは動的に表示しておらず、決め打ちで出しているだけでした。それではあまり意味がないので、今回は画像取得部分をやることにします。 ただし、メインスレッド上で画像取得をしてしまうと、取得中はユーザからの操作を全く受け付けない、使い勝手の悪いインターフェースになってしまいます。 そこで、ユーザ操作を受けつけつつ、画像を取得するために、別スレッドで処理を行います。 アプリケーションのユーザビリティを向上させるためには、この非同期処理は必須といえます。今回でマスターしてしまいましょう。 さらに、ついでなので無駄なネット
Androidでの開発でListViewにImageViewを埋め込み,画像を非同期で読み込みたい場合,いくつか注意することがあったのでまとめます。 AsyncTaskで画像を非同期に読み込む処理は以下のページを参考にさせて頂きました。 http://labs.techfirm.co.jp/android/cho/1079 セルの位置と画像表示位置が一致しない ListViewはセルとなるViewを使い回しているためか,AsyncTaskで画像を読み込んだ場合,本来表示されるべきセル以外のセルに画像が表示されしまう場合がありました。 多少強引な方法ですが,画像のタグにURLを保存し,タグと一致するURLが読み込まれた場合のみ,画像をセットすることで解決できました。 参考:Android画像付きリストの設定(ListView) | 株式会社ランチェスター 大きめの画像を読み込むとOutOfM
Androidでの開発で、リストビューに項目毎に画像を置くケースでの対応です。 メモリ使用量を抑える為、スクロールさせて実際に必要になったときだけ表示する対処を行う。 ● 読込中と読込完了時の設定 AsyncTaskでバックグラウンド処理を行い、読込中の場合はプログレスバーを表示させる。 ● 画像データのキャッシュの使用 AsyncTaskで一度読み込んだ画像をキャッシュに保持し、スクロールにより再表示する時にwebからの読込を省略する事で負荷を軽減する。 ● 画像データのキャッシュのクリア キャッシュを保持し続けるとメモリ使用量が増える為、リスト画面終了時にキャッシュをクリアする処理を呼び出す。 以上の事を踏まえたソースコードを以下に示します。 画面レイアウト設定用XMLファイル <?xml version="1.0" encoding="utf-8&
Newしなおすとリソース食うからとか言って、使いまわそうとするとIllegalStateExceptionがでてこんなメッセージがでる Cannot execute task: the task has already been executed (a task can be executed only once)タスクは1回しか実行できないんだよって言ってますね。 毎回インスタンスを生成しましょう
以下のようなadapterを作ってみた public class ImageListAdapter extends ArrayAdapter<String>{ private ArrayList<String> urls; private LayoutInflater inflater; public UserListAdapter(Context context, int textViewResourceId, ArrayList<String> urls) { super(context, textViewResourceId, users); this.urls = urls; this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override
Twitter Streaming API メインメソッドで動作するコード。 // Configureationを生成するためのビルダーオブジェクトを生成 ConfigurationBuilder builder = new ConfigurationBuilder(); // コンシューマーキーとアクセスキーを設定 builder.setOAuthConsumerKey("consumer key"); builder.setOAuthConsumerSecret("consumer secret"); builder.setOAuthAccessToken("access token"); builder.setOAuthAccessTokenSecret("token secret"); // Configurationを生成 Configuration conf = builder
概要 例題として、配列priceに設定された課税前の価格を一つづつ抜き出し変数workAreaに代入し、workAreaに代入された価格に消費税を課税する処理を行います。課税前の価格を抜き出しworkAreaに代入する処理をpricePutメソッドにて、workAreaに代入された価格に課税する処理をpriceGetメソッドにて行います。 この処理を行う上でスレッドの実行順序を制御せずに実行した場合は、スレッドの実行順序はJavaの動作するシステムのスケジュール機能に依存するため、必ずしもpricePutメソッドとpriceGetメソッドが交互に実行されるとは限りません。その場合、実行結果は以下のようになる場合があります。 課税後価格は105.0円です。 課税後価格は210.0円です。 # pricePutで新しい価格が設定される前に 課税後価格は210.0円です。 # priceGetが
SEとして、数年。。。技術力で食べていきたい!! という思いと、なかなか最新の技術はWEBで調べても わからないこともあるってことで、同じように困っている人がいるかも と思い設立しました。 どうもどうも、ゆきむです。ご無沙汰しておりました。。。 今日は、標題の通り、Androidにおけるマルチスレッドプログラミングについて書いてみたいと思います。 マルチスレッドとはなんでしょう?e-wordによると以下のようになっています。 1つのアプリケーションソフトがスレッドと呼ばれる処理単位を複数生成し、並行して複数の処理を行うこと。いわばアプリケーションソフト内でのマルチタスク処理。マルチタスクと同じように、CPUの処理時間を非常に短い単位に分割し、複数のスレッドに順番に割り当てることによって、複数の処理を同時に行っているようにみせている。 引用元:e-words.jp/w/E3839EE383A
前回はViewのonClickリスナにPendingIntentを仕掛けることによって、AppWidgetのクリックイベントを拾うことができました。 複数のWidgetを配置している場合には、どのWidgetがクリックされたかを判断する必要があります。 Intent.setData()を使用してActivityにAppWidgetIDを渡してあげればOKです。 public class SampleWidgetProvider extends AppWidgetProvider { public static final Uri CONTENT_URI = Uri.parse("content://jp.xfutures.android.sample"); public void onUpdate( Context context, AppWidgetManager appWidgetM
jNTrainのウィジェット対応、結構時間がかかりました。 が、何とか必要最小限の機能は実装できたのでそろそろ公開したいなと思ってます。 この開発がひと段落着けばjWezの開発も始めたいところなので、備忘録としてウィジェット開発時の個人的なポイントをメモメモ。 Androidの基本的な開発に関してはググればいくらでも出てくるので助かるのですが、ビギナー向けなのか、スケルトンを動かしただけでOKとしているサイトも多く、ちょっと実践的な処理を行おうとすると詰まってしまうことも多かったのですね。 特にウィジェットの複数配置(でなおかつそれぞれ違う動作をさせたい場合)に関しては余り言及されてないような気がする。 ■ウィジェットの構成 ●AppWidgetProviderInfo ウィジェットのサイズ、レイアウトxmlの指定、更新間隔を定義しておく。 サイズ違いのウィジェットを複数作成したい場合はこ
Xperia発売されましたね。 うちのPICTRHYTHMもよろしくね! http://www.techfirm.co.jp/pictrhythm/ と、宣伝もそこそこに今回は、Adapterの高速化にトライします。 Androidの中でAdapterクラスは頻繁に使われます。 Adapterクラスは、データソースとビューのつなぎ役を果たすものです。 データの一覧を表示するには、ListViewやGridView、Galleryなど様々なViewがありますが、これらのViewにはsetAdapterメソッドがあり、adapterがセットされると、表示すべきデータはこのアダプターから取得するようになります。 Adapterが内部データの違い(データがArrayだったり、Listだったり、Cursorだったりなど)を吸収してくれるので、Viewは余計なことを考えずに描画に集中できるわけで
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
Home > Index > サーブレットで文字化けを防ぐために文字エンコーディングを指定するポイント(java,servlet) サーブレットで出力したHTMLが文字化けしてしまう、ということがあります。 そんなときのチェックポイントのまとめ。 Hello World サーブレット サンプルとなるサーブレット. import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class He
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く