メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2011年5月14日土曜日

[その他] 投稿が消えたw

消えたw

---

そして復旧したw
.

2011年5月12日木曜日

[Android][お勉強] 必要そうなAVD

とりあえずひととおりのAVDをcreateしてみた。

AVDは以下な感じ。


$ android list avd
Available Android Virtual Devices:
Name: em15
Path: /home/konno/.android/avd/em15.avd
Target: Android 1.5 (API level 3)
Skin: HVGA
Sdcard: 64M
---------
Name: em16
Path: /home/konno/.android/avd/em16.avd
Target: Android 1.6 (API level 4)
Skin: HVGA
Sdcard: 64M
---------
Name: em16-qvga
Path: /home/konno/.android/avd/em16-qvga.avd
Target: Android 1.6 (API level 4)
Skin: QVGA
Sdcard: 64M
---------
Name: em21-854
Path: /home/konno/.android/avd/em21-854.avd
Target: Android 2.1-update1 (API level 7)
Skin: WVGA854
Sdcard: 64M
---------
Name: em22-800
Path: /home/konno/.android/avd/em22-800.avd
Target: Android 2.2 (API level 8)
Skin: WVGA800
Sdcard: 64M
---------
Name: em22-1024
Path: /home/konno/.android/avd/em22-1024.avd
Target: Android 2.2 (API level 8)
Skin: 1024x600
Sdcard: 64M
---------
Name: em231
Path: /home/konno/.android/avd/em231.avd
Target: Android 2.3.1 (API level 9)
Skin: HVGA
Sdcard: 64M
---------
Name: em233
Path: /home/konno/.android/avd/em233.avd
Target: Android 2.3.3 (API level 10)
Skin: HVGA
Sdcard: 64M
---------
Name: em30
Path: /home/konno/.android/avd/em30.avd
Target: Android 3.0 (API level 11)
Skin: WXGA
Sdcard: 64M
 


そんだけー
.

2011年4月29日金曜日

[Android][お勉強] ファイルシステム

AndroidはLinuxが動いているので、完全なルートファイルシステムがマウントされているそうで。

とういうことで早速。

まずはプロジェクト作成。


$ android create project -n myfiles -t 7 -p /home/konno/work/t/myfiles -k jp.co.qsdn.android -a MyFiles
 


で、MyFiles.java修正。

package jp.co.qsdn.android;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

import java.io.*;

public class MyFiles extends Activity
{
private int counter = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
textView.setText(createFileView("/"));
setContentView(textView);
}

protected String createFileView(String fileName) {
File f = new File(fileName);
String s = fileName + "\n";
counter++;
if (counter >= 10) return s;
if (f.isDirectory() ) {
File fls[] = f.listFiles();
for (int i=0;i<fls.length;i++) {
s = s + createFileView(fls[i].getPath());
}
}
return s;
}
}
 

というどうしょうもないActivityに。

で、コンパイル。

$ ant debug
 


で、実機へぽい。

すると画面には・・・・

/
/dev
/dev/pts
/dev/socket
/dev/socket/property_service
/dev/socket/void
・・・
 

なんてなのが表示された。

ふーん。。。

パッケージは

/data/data/パッケージ名
 

と言う感じで設置されるらしい。

入出力する際は、大きなデータを書き込むとI/Oエラーになる。
だって領域小さいもんね。

SDカードは

/sdcard
 

なんですかね。。。
SDカードに書き込む際は、WRITE_EXTERNAL_STORAGEパーミッションを要求しとかないとダメとのこと。(マニフェストファイル)

そんだけー
.

[Android][お勉強] インスタンス状態

永久的に保存する必要のない、現インスタンスの状態は


android.os.Bundle

で管理される。

*.onSaveInstanceSate()や*.onRestoreInstanceState()
あたりがインスタンス状態を保存/復帰するいい感じのタイミングで呼ばれるとのこと。
onSaveInstanceStateで保存された「状態」は、再初期化される直前に
リストアされる。

.

[Android][お勉強] SharedPreferences

データを保存しておくために、

1) Shared Preferences
2) Internal Storage
3) External Storage
4) SQLite Databases
5) Network Connection

が用意されているそうな。
その中に、SharedPreferencesがある。

設定画面を構築する際に用いるPreferenceActivityは
ユーザのPreferenceを保存するのに内部でSharedPreferenceを使っているんだって。
でもSharedPreferenceは厳密にはユーザPreferenceを保存するためのものではないそうな。

SharedPreferencesはプリミティブなデータのkey-valueストア。
ユーザセッションにまたがってデータを受け渡しできる。

.

[Android][お勉強] より宣言的に

Androidでは、手続き的にデザインを記述(Javaコードごりごり書く)する方法と宣言的にデザインを記述(XMLでごりごり)する方法の2つの方法をサポートする。

Googleさんは宣言的にアプローチすることを勧めているとのこと。


TextView textView = new TextView(this);
textView.setText("あいうえお");
setContentView(textView);
 

とする代わりにres/layout/main.xmlで

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="あいうえお"
/>


と書くこともできる。

.

[Android][お勉強] リソース

ローカライズされた文字列、画像、プログラムが必要とするコード以外の情報のこと。
リソースはプロジェクトのresディレクトリに配置する。

.