タグ

2015年5月9日のブックマーク (9件)

  • Strings などのリソースを動的に取得する - Unmotivated

    Android において、静的にリソース名を指定せずに、動的にリソースIDを取得したいことが時々あります。 ある範囲のリソースが欲しいなど、一定の規則でリソース名が決まっている場合は以下の方法でリソースが取れます。 1 2 3 4 5 6 7 // prefix0, prefix1, prefix2, ... と言う名前のリソースを取得する for(int i=0;; i++) { int resourceId = getResources().getIdentifire("prefix" + String.valueOf(i), "string", getPackageName()); if(resourceId == 0) break; // リソースを取得 String str = getResources().getString(resourceId); } 全てのリソースが欲しい

    Strings などのリソースを動的に取得する - Unmotivated
    craf
    craf 2015/05/09
  • Android におけるストレージまとめ - Unmotivated

    Android で外部ファイルを保存する場合、どこに何を保存すれば良いのか?それぞれの違いは何なのか? 内蔵メモリなのか?SDカードなのか? いい加減しっかり把握しておきたいと思ったので、まとめてみました。 ざっくりまとめ それぞれの領域の名前は、この記事の中で区別するためにつけたもので、アクセス権減は非 root ユーザから見た図です。 ディレクトリ取得メソッド アプリ専用? ユーザがアクセス可能? クリア方法 アプリ削除時に 内部データ領域 Context.getFilesDir() yes no データを消去 消える 内部キャッシュ領域 Context.getCacheDir() yes no キャッシュを消去 消える 外部データ領域 Context.getExternalFilesDir() yes yes データを消去 消える 外部キャッシュ領域 Context.getExter

    craf
    craf 2015/05/09
  • Android のタッチイベントを理解する(その1) - Unmotivated

    タッチイベントがうまく流れてこなくて困ったり、自力でイベントをルーティングしたりするときに困ったりと、ちょこちょことタッチイベントについて勉強したのでまとめておきます。 主にタッチイベントがどう流れてどう止まるかなどについて調べています。 イベントの流れを理解するには以下の資料がかなり参考になりました。 Mastering the Android Touch System (PDF) 毎度のことながら、間違いがありましたらご指摘頂ければ幸いです。 タッチイベントを処理する主要なメソッド 実際の流れを理解する前に、主要なメソッドを三つ紹介しておきます。 メソッド名 概要 onTouchEvent() (View) タッチイベントに対して何かを処理するメソッド。setOnTouchListener() で登録した listener はこのタイミングで呼び出される。 onInterceptTou

    Android のタッチイベントを理解する(その1) - Unmotivated
    craf
    craf 2015/05/09
  • [Groovy]with句を使ってオブジェクトの初期化をちょっと簡略化する - Qiita

    class Hello{ String name Integer age String message def createMessage(String name, Integer age) { this.message = """Hello! I am ${name}(${age})""" } def setAge(Integer age) { this.age = age + 100 } } 特になんの変哲もないクラス。 少しJavaと違うのが、メンバ変数のセッタが宣言されている場合、Groovyの場合、直接プロパティにアクセスしようとすると、自動的にその変数用のセッタが呼ばれるということぐらいでしょうか? 例えばhelloObject.age = 100を実行すると、プロパティのアクセスではなく、setAgeが実行されます。 このオブジェクトを操作しようとすると、以下のような形になり

    [Groovy]with句を使ってオブジェクトの初期化をちょっと簡略化する - Qiita
    craf
    craf 2015/05/09
  • Closure クラスの API を使ってみる (2) : this, owner, and delegate - 倭マン's BLOG

    今回はクロージャを込み入った方法で使う際に意識しておくべき3つのオブジェクト this (thisObject) owner delegate とそれに関するメソッドを見ていきます。 まぁ、この記事読んだところで、結局よぉ分からんってオチになりそうだけど。 this, owner, and delegate とりあえず Groovy のドキュメント「Groovy - Closures」を参照してみると this : as in Java, this refers to the instance of the enclosing class where a Closure is defined owner : the enclosing object (this or a surrounding Closure) delegate : by default the same as owner

    Closure クラスの API を使ってみる (2) : this, owner, and delegate - 倭マン's BLOG
    craf
    craf 2015/05/09
    クロージャの移譲先を変更する方法
  • LeakCanaryでメモリリークを検出する - Qiita

    Squareがメモリリークを検出するライブラリ square/leakcanary を公開したので、さっそく使ってみたらすごく便利だった話です。 A small leak will sink a great ship Piwaiが書いたLeakCanaryの記事がこちらです。 LeakCanary: Detect all memory leaks! 要約すると、 Squareではビットマップキャッシュに顧客の署名を書いていたが、端末の画面のサイズ分のメモリを確保するので、署名をするときにクラッシュすることがあり、それがOOMの大半を占めていた。 Bitmap.Configを変更したり、OOMをキャッチしてGCを走らせたりしたが、問題の解決には至らなかった。 我々は間違ったアプローチを取っていたことに気が付いた。ビットマップの大きさではなくメモリリークが根的な原因だったのだ。 通常であれば

    LeakCanaryでメモリリークを検出する - Qiita
  • HamcrestのMatchersに定義されているメソッドの使い方メモ - Qiita

    apply plugin: 'java' repositories { mavenCentral() } dependencies { testCompile 'junit:junit:4.11', { transitive = false } testCompile 'org.hamcrest:hamcrest-all:1.3' } >gradle dependencies testCompile - Compile classpath for source set 'test'. +--- junit:junit:4.11 \--- org.hamcrest:hamcrest-all:1.3 JUnit 4.11 はデフォルトだと hamcrest-core の 1.3 に依存している。 今回は別途 hamcrest-all を依存関係に追加するので、 transitive = fal

    HamcrestのMatchersに定義されているメソッドの使い方メモ - Qiita
  • DroidCon Montreal に行ってきました。

    DriodCon Japan 開催をもくろむ mhidaka と共に視察(半分観光)として DroidCon Montreal に行ってきました。 DroidCon Montreal カナダで最初のDroidConということで、Welcome talk では Toronto じゃなくて Montreal だぜ、いぇい、というのりでした。 朝と昼が出たのですが、ホテルの朝よりおいしかったです。 9時スタートに来てもらうには朝は必須ですね。 セッションメモ Keynote - An Open Source Advantage Jake Wharton & Jesse Wilson (Square Inc.) セッションスライド https://speakerdeck.com/swankjesse/an-open-source-advantage-droidcon-mtl-2015 二人

    DroidCon Montreal に行ってきました。
    craf
    craf 2015/05/09
  • Git for Windows v2.x.xのインストール

    Git v2系のWindows版がGit for Windowsの方で少し前から公開され始めていたことを今さら知ったので、更新した。2015/05/05現在はv2.4.0がリリースされている。インストールから動かすまでけっこう手間取ったので、メモがてら記事に残しておく。Git v2の使い勝手とかについては特に書かない。 ~/.bashrcの読み込み このGit for Windowsでは、デフォルトで無理やり~/.bashrcを読みに行くことがなくなった。~/.bash_profileは読みに行くので、~/.bash_profileから~/.bashrcを読みに行くように、つまり普通にBashを設定してやれば良い。 if [ -f ~/.bashrc ]; then . ~/.bashrc; fi これだけ書いた~/.bash_profileを作成するのが良い。あまり関係ないイシューではそ

    Git for Windows v2.x.xのインストール
    craf
    craf 2015/05/09