タグ

Androidに関するtaro322のブックマーク (94)

  • SlackのAndroidアプリで使われているライブラリ - Qiita

    SlackAndroidアプリで使われているライブラリを調べてみた。Versionは2.1.1。 Square / Jake神 関連 Dagger, Butter Knife, Otto, RxAndroid, Timber, Picasso, OkHttp, Okio ここらへんは定番ですね。 その他定番の Guava, Joda-Time, Gson Chris Banesさんの Chris BanesさんはGoogleの人です。 FloatLabelLayout EditTextのhintが文字入力時にぴょんとアニメーションして上に表示される https://plus.google.com/+ChrisBanes/posts/5Ejaq51UWGo https://gist.github.com/chrisbanes/11247418 PhotoView https://githu

    SlackのAndroidアプリで使われているライブラリ - Qiita
  • androidアプリ開発テクニックまとめ 画像編その1

  • ImageViewとBitmap#recycle覚書 - hidecheckの日記

    開発してるとActivityにBitmapを持たせたいことってよくある でもメンバで持ってると自前で解放しなくてはならない。 Bitmapのメモリ管理はネイティブ側で管理されてるので明示的に開放する必要がある。 マジで?って思ったので実験してみた 実験内容 以下のパターンでBitmapActivityがどのように変化するかを確認 実験1 ImageViewを持たないActivity 実験2 レイアウトでImageViewを持ったActivity 実験3 レイアウトでImageViewを持ち、メンバ変数でもImageViewをもつActivity 実験4 ImageViewを持ち、メンバ変数でBitmapをもつActivity 実験5 Bitmap#recycleの正しい使い方 使うアプリ こんな感じのアプリ 実験2〜4 MainActivity>BitmapActivity>(戻るキーで)

    ImageViewとBitmap#recycle覚書 - hidecheckの日記
  • Android : Canvas: trying to use a recycled bitmap

    Android で、Bitmap をごにゅごにゅしていると、 java.lang.RuntimeException:"Canvas: trying to use a recycled  bitmap" ってのに、出くわすことがあります。Web でいろいろ調べてみると、怪しげな解説がかなりあるので、当のところ何が正しい理解なのかをまとめておきたいと思います。 そもそも、Bitmap#recycle() をやらないといけないのは、主に Android のこの辺の実装がよろしくなくて、recycle() してやらないと、メモリリークになるよ、といわれていることが、大きな要因です。勢い、メモリリーク怖さになんでも recycle() しようとして、件の例外に遭遇することとなる訳です。しかし、どういったケースでそれが必要になるのか、筋の通った記事をあまり見かけません。 まず、誰が  ”trying

  • EclipseのプロジェクトをAndroid Studioへインポートする | TechBooster

    Google I/O 2013でAndroid StudioというIDEが発表され、旧来のEclipse環境で開発していたプロジェクトを移行する方法を紹介します。 EclipseのADTプラグイン(ver22)でAndroid Studio用に変換してエクスポートする機能が追加されました。 そのためEclipseのプラグインをアップデートしてエクスポートすることでAndroid Studioへインポートすることが可能です。 今回はEclipseで作成している次のようなファイル構成の状態のプロジェクトをインポートしてみましょう。 中身はHelloWorldになっています。 やり方については続きをどうぞ。 移行するにはまずEclipseのADTプラグインのアップデートとSDKマネージャでアップデートを行います。 ADTのアップデートはここのADTインストールの項目の通りに行うとアップデートでき

    EclipseのプロジェクトをAndroid Studioへインポートする | TechBooster
  • Android Tips #39 LruCache で Bitmap をメモリキャッシュする | DevelopersIO

    LruCache とは LruCache はアプリ上にメモリキャッシュを作るためのクラスです。Android 3.1 (APIレベル12) から導入されましたが Support Package に互換クラスがあるので Android 1.6 (APIレベル4) から使うことができます。 今回は画像を GridView で表示するアイテムをメモリキャッシュしてみたいと思います! LruCache の使いかた 1. 最大キャッシュサイズを決める まずはメモリにキャッシュする最大サイズを決めます。この最大サイズをいくつにするかは対応するバージョンやアプリが他で使用しているメモリ量によるので LruCache を使用する場面で適切な値を決めるようにします。今回はサンプルということで 10 MB としました。 int maxSize = 10 * 1024 * 1024; 2. LruCache を

    Android Tips #39 LruCache で Bitmap をメモリキャッシュする | DevelopersIO
  • 今すぐ実践できるAndoridアプリのメモリ管理 その1 [Androidアプリのプログラミング] All About

    今回使用した画像は足成さんからお借りしました。 http://www.ashinari.com/2013/09/09-381840.php?category=2 また、ActivityのJava・レイアウトxmlのコードに関しては、分かりやすいように単純にしました(MainActivity.javaとactivity_main.xmlに関してはAndroid Studioで新規プロジェクトを作成すると自動的に生成されるものを使用しています)。以下今回使用したソースになります。 MainActivity.java public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInst

    今すぐ実践できるAndoridアプリのメモリ管理 その1 [Androidアプリのプログラミング] All About
  • Android のメモリ管理は大変です

    ■理想 AndroidってJavaだからメモリ管理なんてしなくてもいいよね!! なんて思っていた時代が私にもありました・・・ ■現実 @Override protected void onDestroy() { super.onDestroy(); // 画面が回転した時など、Activityが破棄されるときに呼び出されます // すべてのメモリはここで開放します // - 特に危険なのが内部クラス(MyWebChromeClientなど)、正しく開放しないとActivityが開放されません // - セットしたbackgroundのcallbackもnullにしないと開放が行われません // - webViewのdestroy()を忘れると後からGCが走ったときにVMがクラッシュします this.webView.stopLoading(); this.webView.setWebChro

  • AndroidアプリケーションをDDMSで効率的にデバッグする方法 | TechBooster

    DDMS(Dalvik Debug Monitor Server)はAndroidのデバッギングツールです。 デバッグ作業の手助けになる情報が満載です。 今回はEclipcse上のDDMSパースペクティブの使い方について紹介します。 そのほかのデバッグ機能、adbについては「adbを使いこなす」 デバッグログシステムについては「デバッグログを使いこなす」をご確認ください。 主な機能は以下の通りです。 デバイスごと、デバッグ機能を提供 エミュレータへの着信、電波状態、位置情報制御 スレッドの状態確認 Heap(メモリ)の使用量、使用統計情報 メモリ・アロケーション(メモリ確保)のトラッキング ファイルエクスプローラ Devices(デバイス)タブ USB接続されたAndroid端末、もしくはエミュレータが表示されるタブです。 各端末ごとのプロセス一覧が表示され、デバッグ対象のprocessに

  • Android のメモリ管理 #3 Heap dump でメモリリークの原因を解析する | DevelopersIO

    Heap dump とは Heap dump は現時点でどのようなオブジェクトがメモリに確保されているか解析するための機能です。 動作中のアプリの任意のタイミングでヒープのスナップショットをとる (HPROF形式のファイルとして出力する) ことができます。 このツールも Allocation Tracker と同様、Android SDKに含まれている機能なのでAndroidの開発環境が最低限整っていれば誰でも使用することができます。 今回は Eclipse Memory Analyzer (以下MAT) の使用方法を通して、 Heap dump を利用したメモリ解析について解説したいと思います。 Androidアプリのヒープ領域 ヒープ領域とは、動的に確保できるメモリ領域のことを指します。Androidのヒープ領域は Linuxヒープ (ネイティブヒープ) と Dalvikヒープ (Ja

    Android のメモリ管理 #3 Heap dump でメモリリークの原因を解析する | DevelopersIO
  • Androidアプリ開発でのメモリ使用量確認

    HeapSizeは確保されているメモリ量で必要に応じてメモリが確保され増えていきます。 増え続けると限界値まで増えます。 限界値は Runtime.getRuntime().maxMemory() で確認可能。 限界値はエミュレータの場合は、Android Virtual Device Managerで設定するMax VM application heap sizeです。 Allocatedは使用中のメモリ量です。 このDDMSでどのくらいHeapが確保されていて、どのくらい使われているのかを確認します。 ちなみにここで言うHeapはDalvikヒープのことを指しているようです。 Androidアプリ自身には、 ・ネイティブヒープ ・Dalvikヒープ の2種類のヒープがあるようです。 あと端末自体に割り当てられているLinuxヒープというのもありますが。 ■ネイティブヒープ Andori

    Androidアプリ開発でのメモリ使用量確認
  • out of memoryについて端末の依存状況 - 素人のアンドロイドアプリ開発日記

    このブログにて、何度かメモリについて取り扱ってきたのですが、 今回は、端末の責任を書きます。 メモリを見ると100Mとか200Mとか余っててもバカスカ落ちる端末がいます。 この場合、アプリが100MBとか、そういう責任ではないのです。 androidのアプリにheapと言うのがあるようで、 楓 software を参考にさせてもらうと 下は24MBで上が70MBですが、 この値を超えると強制終了するようです。 つまり、カンタンに言うと、自分の端末のスペックがいい人は、このheap問題に気づかないと言う事です。 galaxy sは記載されてないですが、結構heapサイズがでかいみたいで、検証の時には問題なかったのにHTCで急に落ちる事が何が問題かわかりませんでした。 以前の端末では16MBくらいだったらしいので、バージョンを1.6くらいからに設定したい人には、その値を目安にする方がいいかもし

  • out of memoryが起きる機種、起きない機種 - 素人のアンドロイドアプリ開発日記

  • Android のメモリ管理 #2 Allocation Tracker でメモリに割り当てられたオブジェクトを調べる | DevelopersIO

    はじめに Allocation Tracker はある時間とある時間の間でメモリにどのような種類のオブジェクトがアロケート(割り当て)されたかを調べることができるツールです。Android SDKに含まれている機能なのでAndroidの開発環境が最低限整っていれば誰でも使用することができます。 前回のブログでは概要のみでしたので、今回はこのツールの機能と活用方法について具体的に見ていこうと思います。 アロケートを確認してみる 説明が多くても分かりづらいと思うので、まずはアロケートを確認してみましょう。 例として、以下のようなカスタムViewを作りました。 CustomView.java package jp.classmethod.android.sample.sampleproject; import android.content.Context; import android.gra

    Android のメモリ管理 #2 Allocation Tracker でメモリに割り当てられたオブジェクトを調べる | DevelopersIO
  • Android のメモリ管理 #1 メモリ使用量の分析・解析ツールを知る | DevelopersIO

    はじめに よりよいアプリをつくるためには、メモリ管理はとても重要です。 スマホはPCと違ってメモリ不足がとても起こりやすいので、メモリ管理への考慮が不十分だと OutOfMemory (メモリ不足によるエラー) がすぐに発生し、アプリが強制終了してしまいます。また、メモリ不足の状態のアプリはとてもパフォーマンスが悪く、ユーザーの思いがけない誤操作にもつながります。システム全体や他のアプリに影響を与えてしまうことも考えられます。 つまり実装はもちろん、画面遷移やレイアウトのデザイン、仕様などAndroidアプリ開発のすべてのプロセスにおいて 「メモリ消費を抑える」 という点を常に配慮する必要があります。 ということで、このシリーズではAndroidアプリにおけるメモリ管理の方法やツールの紹介、実装のコツなどのTipsを紹介していきたいと思います。 今回は第一回目ということで、アプリのメモリ使

    Android のメモリ管理 #1 メモリ使用量の分析・解析ツールを知る | DevelopersIO
  • Android - Androidプログラマかを見分ける12の質問(回答編)

    目的としては、それなりに信念を持ってAndroidアプリ開発にある程度の期間携わってきたことを見抜くことなので、完全な回答を求めているわけではない事に注意。 多少間違っていてもそれなりに内容をもって答えられていればほぼ正解としてよいものとする。 1. ListViewを使うとただ単にViewを適宜生成、連結してリストを作った場合に対して大幅な利点が存在するが、それは何か。実装の癖を交えて簡単に説明せよ。 リスト表示対象の情報が100件以上と多い場合に、パフォーマンスの差が顕著になること。これに関しては、やったことがないのであれば自分で1000件、2000件データを連結したリスト表示を「ListViewを使わずに」行ってみて、 描画に恐ろしく時間がかかることを確認するべき。Webアプリの方には無い概念なので印象に残るはず。 ListViewの方は、画面に表示されている部分しか描画処理を行わな

  • Android Bitmap をキャッシュする

    Caching Bitmaps に補足をつけて解説しています。 前回のバックグラウンドで Bitmap を処理するで、最後に(でもキャッシュは、、、?)と書きました。 そう!キャッシュ!キャッシュ大事。 前回までの段階でもまだ ListView で使うには問題が残っています。 既にタスクが走り終わって ImageView に画像がセットされている行をいったんスクロールアウトし、再度スクロールして画面に表示すると、またタスクが走ってしまいます。 スクロールするたびに読み込み状態になるのはユーザーとしてはうれしくないですよね。 そこでキャッシュを使って、一旦読み込んだ画像が再度必要になったときに利用できるようにします。 キャッシュとしてはメモリキャッシュとディスクキャッシュを利用することができます。 ■ メモリキャッシュ メモリキャッシュの利点は読み込みが速いこと、欠点はメモリを消費することで

  • Androidアプリの描画パフォーマンスを向上させる方法 第1回 - OPTPiX Labs Blog

    この計測結果から、OpenGL ESで描画した場合では、Viewで描画した場合に比べ、描画パフォーマンスが約260%も向上することがわかります。 ただ、「こんなに早いからいつもこの方法で作ればいいのだ!」というわけではなく、描画パフォーマンスが良いからといって、あなたのAndroidアプリケーションにとってそれが必ずしも最も良い方法になるわけではありません。 測定の条件(画像サイズや枚数、機種など)によっては、必ずしも今回と同様のパフォーマンスが得られるわけではなく、OpenGL ESを使用した場合はコードがやや複雑になるため、生産性やソフトウェアの品質が低下する可能性もあります。 また、早ければ早いほど電力消費が激しくなるという問題もあります。 では、あなたとって最も良い方法とは何なのでしょうか? fpsとは? Frame Per Secondの略で1秒あたり何枚のフレームが処理されるか

    Androidアプリの描画パフォーマンスを向上させる方法 第1回 - OPTPiX Labs Blog
  • Android NDKを使用してJava言語とC言語で速度比較をする(IO編) | Techfirm Android Lab

    こんにちはBig iguchiです。 早速ですがみなさん、 Androidは画像の読み込みが遅いと思ったことはありませんか? それ以前に、Androidは大きな画像を読み込むとすぐに落ちると思ったことはありませんか? 今日はそんな問題を解決するための方法を一つ紹介しようと思います。 そうです。Android NDKです。 しつこくてすいません。Javaでも出来ると言う方はご紹介ください。 Android NDKを使用すればJavaのヒープメモリを使用せずCのヒープメモリを使用するため、落ちることやGCによるストップザワールのようなことが発生しないと予測しました。 方法は、1920×1080の画像を読み込みRGBのデータを取得できるところまでの時間を測定します。実機はHT-03Aを使用しました。使用した画像は以下です。 取得してから画像を扱うところのパフォーマンスは画像処理編で試してい

  • Sign in - Google Accounts