Hatena::ブログ(Diary)

gae+eyoの日記

2012年10月21日(日)

[] 内部ストレージとSystemストレージ

内部ストレージが1GBくらいあれば、ゲームとかしないかぎり不足することは無いですな! と思っていたら容量不足に。

f:id:gae:20121021134659p:image:w240

「設定→アプリ」を見ると 476MB の空き容量があるように見えるけど、「設定→microSDと端末容量」を見ると空き容量は 114MB という表示。

f:id:gae:20121021135244p:image:w240 f:id:gae:20121021135245p:image:w240

わかりにくいですな。

f:id:gae:20121021135720p:image:w240

Quick System Infoでキャッシュをまとめて消すと350MBほど確保できた。これでアップデートも無事にできた。

ブラウザのキャッシュはすぐに数百MBになってしまうので、内部ストレージが1GBくらいあっても結構簡単に無くなってしまいますな。標準ブラウザとChromeを使い分けたりしているとキャッシュも別々だから、かなり容量くってる。


2012年10月5日(金)

[] Android 4.0以降でテキストの表示がとても遅くなる件

Android 4.0でハードウェアアクセラレーションが有効な状態で、たくさんの文字種を表示するとパフォーマンスが激しく悪くなる件。

テスト用のAPK。Android 4.0以降用で試してください。(4.0未満だと意味がありません)

0〜100行目までは滑らかにスクロールします。

100〜200行目まではスクロールがものすごく遅くなります。(Nexus 7で10fps以下)


再現するためのコードはこんな感じです。

AndroidManifest.xml

    <uses-sdk
        android:minSdkVersion="4"
        android:targetSdkVersion="16" />

Activityのコード。

0〜100行目は各行1種類の文字だけを表示。

100〜200行目は1行に50種類の文字を表示しています。

public class ListViewTestActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ListView listView = new ListView(this);
        setContentView(listView);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1);

        char x = 0x4E9C;

        // 100行目までは1行に1種類の文字を100文字表示
        for (int j=0; j<100; j++) {
            String s = "";
            for (int k=0; k<100; k++) {
                s += Character.toString(x);
            }
            adapter.add(s);
            x++;
        }

        // 100行目以降は1行に50種類の文字を50文字表示
        for (int j=0; j<100; j++) {
            String s = "";
            for (int k=0; k<50; k++) {
                s += Character.toString(x);
                x++;
            }
            adapter.add(s);
        }

        listView.setAdapter(adapter);
    }
}

ハードウェアアクセラレーションを無効にすると、30fps程度はでます。

        <activity
            android:name=".ListViewTestActivity"
            android:hardwareAccelerated="false"
            android:label="@string/app_name" >

誰か回避方法を知っていたら教えてください。


これは極端なサンプルですが、日本語表示してるとこれに近い状況がよく発生してパフォーマンスが悪くなったりするんですよね。

たぶん英語みたいに文字が少ない環境だと、ぜんぜん問題ないんだと思いますが。

2012年9月28日(金)

[] Nexus 7

会社の人が買っていたのでスルーしていたけど、日本でも普通に買えるようになったので注文。

香港から発送されたみたいだけど2日で到着。


背面カメラがないとか、バイブレータがないとか、ディスプレイがいまいちとか、メモリカードがささらないとか、微妙に重いとか気になるところはあるけど、この値段とGoogleのブランドのおかげで買う人は多そうですな。

普通の microUSB で充電できるのはイイですな。

2012年9月27日(木)

[] Android 3.0未満でHD(1280x720以上)の端末

Android 3.0未満で1280x720以上の解像度の端末を調べたのでメモ。思ったよりたくさんあってびっくり。

Android 4.0 へのアップデートが提供されているものを除く。

2012年9月23日(日)

[] IS03

IS03 も購入。

この時のメモリ液晶ってこんなに汚かったのか。

動きは悪いですな。

これでも Desire の半年後なんですな...。