--/--/--(--)


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
コメント(-) | トラックバック(-) | --:--:--

2010/11/30(火)


android各種端末とその情報です。
最新版はこちら

NameTargetSkinNotes
IS01
(SHARP)
Android 1.6
- API Level 4
(FWVGA)?
(480 x 960)
Memory: 256MB
Display:
5インチ(83 x 149 x 17.9)
IS03
(SHARP)
Android 2.1-update1
- API Level 7
HVGA?
(320 x 480)
Memory: 512MB
Display:
3.5インチ(63 x 121 x 13.3)
Xperia
(Sony Ericsson)
Android 2.1-update1
- API Level 7
WVGA854
(480 x 854)
Memory: 384MB
Display:
4インチ(63 x 119 x 13.1)
Desire
(HTC)
Android 2.2
- API Level 8
WVGA800
(480 x 800)
Memory: 512MB
Display:
3.7インチ(60 x 119 x 11.9)
Galaxy S
(Samsung)
Android 2.2
- API Level 8
WVGA800
(480 x 800)
Memory: 512MB
Display:
4インチ(64 x 122 x 9.9)
LuvPad AD100
(mouse computer)
Android 2.2
- API Level 8
(WSVGA)
(600 x 1024)
Memory: 512MB
Display:
10.1インチ(169 × 260 × 13.9)

スポンサーサイト
コメント(4) | トラックバック(0) | 01:20:52

2010/11/30(火)


auのAndroidスマートフォン IS03 が発売になりましたね。さっそく開発環境のeclipseにAVDを登録しようとしたら、IS03の解像度(640 x 960)が見当たりません。ちらっとググってみると、HVGA(320 x 480)を二倍にして表示されるらしいとのこと。とりあえずHVGAで設定しておきましたが、これでいいんでしょうか? 実機がないので検証しようがない;;

Android端末各種 AVD設定表
コメント(0) | トラックバック(0) | 00:12:34

2010/11/28(日)


アプリケーション上でフォントを変更することができます。下記は、SDカード上にあるフォントファイルを指定する場合の例です。

import android.app.Activity;
import android.os.Environment;
import android.graphics.Typeface;
import android.widget.TextView;
 
public class MyClass extends Activity{
 
 public void myMethod(){
 
  // フォントファイルの場所 /sdcard/ipam.ttf
  String path = Environment.getExternalStorageDirectory().getPath();
  String fontfile = "/ipam.ttf";
 
  // テキストビューにフォントファイルを指定
  TextView text = (TextView)this.findViewById(R.id.myText);
  Typeface face = Typeface.createFromFile(path + fontfile);
  text.setTypeface(face);
 }
}

コメント(0) | トラックバック(0) | 12:02:28

2010/11/26(金)


アジアのソフトウエア開発現場にて
分かりやすいコード

共通ロジックのリファクタリングは、コードの可読性に立ちはだかる大きな問題の1つですね。(そのアプリケーション内において)低階層に位置する共通関数群やスーパークラス等は、ソフトウェアの大部分に影響をおよぼす可能性があるため、多くの場合で修正を加えることが困難です。
これらの低階層部分はリファクタリングの頻度を大きく下げる必要があり、その実現のためにも初期設計が非常に重要になってくると私は考えます。
そして、あまりにも手を加える頻度が高まった場合には、思い切ってこれらを捨てる(再利用をあきらめて新たに作る)べきではないかとさえ私は思っています。

コードの量は増え、冗長化してしまうため、一見すると保守性が下がるように見えますが、新規部分のリファクタリングは低リスクで行えるでしょうし、既存コードの可読性・保守性は保たれたままになります。
見極めが難しいところですが、設計者はこうした「再利用あきらめ分岐点」なるものを意識し、来るべき時にはそれを実施する勇気を持つべきではないでしょうか。

例えばオブジェクト指向言語の特徴である継承による再利用性というのは、継承元クラスの修正コストが高くなる要因により、保守性と一部相反している面があると言えると思います。
限られた工数で動いている実際の現場においては、可読性の著しく低下したスーパークラスに手を加えたり、スーパークラスの修正によって莫大なテスト工数がかかったりというケースが往々にしてあるため、オブジェクト指向のメリットを最大限に享受できていないのが実状ではないでしょうか。

また、これらの低階層部分は漏れのないようなるべく汎用的に設計すると思いますが、あまりにも汎化が進んでしまうと恐ろしくアクセシビリティが低下してしまいます。
設計者は可能な限り汎化を押さえ、かつ柔軟に対応できる設計を心がけなければならないのですが、これは対象となる実際の業務をある程度把握していないとできないことであり、そういう意味ではこれらの設計は(プログラムに精通している前提で)上流がやるべきものだと私は思います。
コメント(0) | トラックバック(0) | 12:04:39

2010/11/20(土)


画像クラスBitmapは、BitmapFactoryクラスより生成します。android OSでは1つのアプリケーションに割り当てられるメモリサイズが非常に小さいため、画像を読み込む際には注意が必要です。

画像ファイル
/res/drawable/image_sample.png

import android.app.Activity;
import android.content.Resources;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
 
public class MyClass extends Activity{
 
 public void myMethod(String path){
  // リソースIDから読み込む
  Resources rsc = getResources();
  Bitmap bmp1 = BitmapFactory.decodeResource(rsc,R.drawable.image_sample);
 
  // 直接ファイル名(path)を指定する場合
  Bitmap bmp2 = BitmapFactory.decodeFile(path);
 
  // 画像のサイズ情報のみ取得する
  // 幅:opt.outWidth [px] 高さ:opt.outHeight [px]
  BitmapFactory.Options opt = new BitmapFactory.Options();
  opt.inJustDecodeBounds = true; // 画像サイズ情報のみ取得
  BitmapFactory.decodeFile(path,opt);
  int width = opt.outWidth();
  int height = opt.outHeight();
 
  // オプションを指定して読み込むサイズを調節する
  opt.inSampleSize = 4; // 1/4のサイズで読み込む 2,4,8,16 ……
  opt.inJustDecodeBounds = false;
  Bitmap bmp3 = BitmapFactory.decodeFile(path,opt);
 
  // ビットマップを加工する
  // ALPHA_8:Alphaのみ
  // RGB_565:Alphaなし
  // ARGB_4444:16bit階調
  // ARGB_8888:32bit階調
  int w = bmp3.getWidth();
  int h = bmp3.getHeight();
  Bitmap bmp4 = bmp3.copy(Bitmap.Config.ARGB_4444,true);
  int[] pixels = new int[w * h];
  Bitmap bmp5 = bmp4.getPixels(pixels,0,w,0,0,w,h);
 }
}

コメント(0) | トラックバック(0) | 12:46:16

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。