Posts Tagged ‘パフォーマンス’

Androidã§ãƒ—ロファイリング(traceview)

No Comments »

プログラマã®çš†ã•ã‚“ã€ä»Šå›žã¯Androidã®ãƒ—ロファイラã®ä½¿ã„方をã”紹介ã—ãŸã„ã¨æ€ã„ã¾ã™ã€‚

デãƒãƒƒã‚¬ãƒ„ール(プロファイラãªã©ã‚’å«ã‚€ï¼‰ã‚’使ã†ã“ã¨ã¯éžå¸¸ã«å¤§äº‹ã§ã™ã€‚ã“ã“ã‚’ã†ã¾ã使ã„ã“ãªã›ã‚‹ã‹ã©ã†ã‹ãŒãƒ—ログラムã®å“質ã€é–‹ç™ºã‚¹ãƒ”ードã«å¤§ãã影響ã™ã‚‹ã¨æ€ã£ã¦ã„ã¾ã™ã€‚
ã‚ã‚“ã©ãã•ã„ã¨æ€ã‚ãšç©æ¥µçš„ã«ä½¿ã„ã¾ã—ょã†ã€‚

ã¨ã„ã†ã“ã¨ã§Androidアプリã®ãƒ—ロファイラã§ã‚ã‚‹traceviewã¨ã„ã†ã‚‚ã®ã‚’使ã£ã¦ã¿ãŸã„ã¨æ€ã„ã¾ã™ã€‚

ã“れã¯ã€android-sdkをダウンロードã—ãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªä»¥ä¸‹ã«ã‚りã¾ã™ã€‚
(Android Home)/tools/traceview

ã§ã¯ä½¿ã£ã¦ã¿ã¾ã—ょã†ã€‚

Read the rest of this entry »


Android NDKを使用ã—ã¦Java言語ã¨C言語ã§é€Ÿåº¦æ¯”較をã™ã‚‹ï¼ˆIO編)

No Comments »

ã“ã‚“ã«ã¡ã¯Big iguchiã§ã™ã€‚

早速ã§ã™ãŒã¿ãªã•ã‚“ã€
Androidã¯ç”»åƒã®èª­ã¿è¾¼ã¿ãŒé…ã„ã¨æ€ã£ãŸã“ã¨ã¯ã‚りã¾ã›ã‚“ã‹ï¼Ÿ
ãれ以å‰ã«ã€Androidã¯å¤§ããªç”»åƒã‚’読ã¿è¾¼ã‚€ã¨ã™ãã«è½ã¡ã‚‹ã¨æ€ã£ãŸã“ã¨ã¯ã‚りã¾ã›ã‚“ã‹ï¼Ÿ

今日ã¯ãã‚“ãªå•題を解決ã™ã‚‹ãŸã‚ã®æ–¹æ³•を一ã¤ç´¹ä»‹ã—よã†ã¨æ€ã„ã¾ã™ã€‚

ãã†ã§ã™ã€‚Android NDKã§ã™ã€‚

ã—ã¤ã“ãã¦ã™ã„ã¾ã›ã‚“。Javaã§ã‚‚出æ¥ã‚‹ã¨è¨€ã†æ–¹ã¯ã”紹介ãã ã•ã„。

Android NDKを使用ã™ã‚Œã°Javaã®ãƒ’ープメモリを使用ã›ãšCã®ãƒ’ープメモリを使用ã™ã‚‹ãŸã‚ã€è½ã¡ã‚‹ã“ã¨ã‚„GCã«ã‚ˆã‚‹ã‚¹ãƒˆãƒƒãƒ—ザワールã®ã‚ˆã†ãªã“ã¨ãŒç™ºç”Ÿã—ãªã„ã¨äºˆæ¸¬ã—ã¾ã—ãŸã€‚

方法ã¯ã€1920×1080ã®ç”»åƒã‚’読ã¿è¾¼ã¿RGBã®ãƒ‡ãƒ¼ã‚¿ã‚’å–å¾—ã§ãã‚‹ã¨ã“ã‚ã¾ã§ã®æ™‚間を測定ã—ã¾ã™ã€‚実機ã¯HT-03Aを使用ã—ã¾ã—ãŸã€‚使用ã—ãŸç”»åƒã¯ä»¥ä¸‹ã§ã™ã€‚
sample720x480

å–å¾—ã—ã¦ã‹ã‚‰ç”»åƒã‚’扱ã†ã¨ã“ã‚ã®ãƒ‘フォーマンスã¯ç”»åƒå‡¦ç†ç·¨ã§è©¦ã—ã¦ã„ã‚‹ã®ã§çœãã¾ã™ã€‚

ã§ã¯ã•ã£ãã試ã—ã¦ã¿ã¾ã—ょã†ã€‚

Read the rest of this entry »


Adapterã®é«˜é€ŸåŒ–

No Comments »

Xperia発売ã•れã¾ã—ãŸã­ã€‚
ã†ã¡ã®PICTRHYTHMもよã‚ã—ãã­ï¼
http://www.techfirm.co.jp/pictrhythm/

ã¨ã€å®£ä¼ã‚‚ãã“ãã“ã«ä»Šå›žã¯ã€Adapterã®é«˜é€ŸåŒ–ã«ãƒˆãƒ©ã‚¤ã—ã¾ã™ã€‚

Read the rest of this entry »


Cacheオブジェクトã«ã¯SoftReferenceã‚’

4 Comments »

Androidã€ã„ã‹ãŒã§ã™ã‹ã€‚
今日もOut Of Memoryã€å‡ºã—ã¦ã„ã¾ã™ã§ã—ょã†ã‹ã€‚

ãã‚“ãªã‚ãªãŸã«æœ—å ±ã§ã™ã€‚
å°‘ã—ã§ã‚‚メモリã«ã‚„ã•ã—ã„プログラムを。

今日ã¯SoftReferenceã®ãŠè©±ã§ã™ã€‚

Read the rest of this entry »


パフォーマンスå‘上ã«å½¹ç«‹ã¤æƒ…å ±ã„ã‚ã„ã‚

No Comments »

A3ã¸å‚加ã™ã‚‹ãŸã‚ã«ã‚¢ãƒ—リを作ã£ã¦ã„ã¾ã™ãŒã€ãªã‹ãªã‹ãƒ‘フォーマンスãŒå‡ºãšã«è‹¦åŠ´ã—ã¦ã„ã¾ã™ã€‚
ãã“ã§ã„ã‚ã„ã‚æŽ¢ã—ã¾ã‚ã£ãŸæ‰€ã€ãƒ‘フォーマンスå‘上ã«å½¹ç«‹ã¤æƒ…報をã„ã‚ã„ã‚見ã¤ã‘ãŸã®ã§ã”紹介。

Read the rest of this entry »


Android NDKを使用ã—ã¦Java言語ã¨C言語ã§é€Ÿåº¦æ¯”較をã™ã‚‹ï¼ˆç”»åƒå‡¦ç†ç·¨ï¼‰

No Comments »

ã“ã‚“ã«ã¡ã¯Big iguchiã§ã™ã€‚

å‰å›žã®ã€ŒAndroid NDKを使用ã—ã¦Java言語ã¨C言語ã§é€Ÿåº¦æ¯”較をã™ã‚‹ã€ã«å¼•ãç¶šãAndroid NDKã§éŠã‚“ã§ã¿ã¾ã™ã€‚

今回ã¯ãŸã ã€è¨ˆç®—ã™ã‚‹ã ã‘ã§ãªãå°‘ã—実用的ã«ç”»åƒã®å¹³å‡RGBã‚’å–å¾—ã™ã‚‹ã‚³ãƒ¼ãƒ‰ã‚’Javaã¨Cè¨€èªžã§æ¯”較ã—よã†ã¨æ€ã„ã¾ã™ã€‚

ã¾ãšã¯ã€ã¡ã‚‡ã£ã¨ç”»åƒã®èª¬æ˜Žã€‚。。。

Androidã®å ´åˆã€ç”»åƒãƒ‡ãƒ¼ã‚¿ã‚’Bitmapã§æ‰±ã†ã“ã¨ãŒå¤šã„ã®ã§ã™ãŒã€ã“ã®ã¾ã¾ã ã¨Cè¨€èªžã§æ‰±ã„ã«ãã„ã®ã§ã€ã€ŒBitmap.setPixel()ã‚’setPixels()ã«å¤‰ãˆãŸã‚‰ï¼“å€é€Ÿããªã£ãŸã‚ˆã€ã§daichi1128ãŒè¨€ã£ã¦ã„るよã†ã«getPixelsã§intåž‹ã®é…列ã¨ã—ã¦è‰²æƒ…報をå–å¾—ã—ã¾ã™ã€‚以下ã«ãªã‚Šã¾ã™ã€‚
bitmap.getPixels(pixels, 0, originalWidth, 0, 0, originalWidth, originalHeight);

getPixelsã®ç¬¬ï¼‘引数ã«ã¯bitmapã®è‰²æƒ…å ±ãŒintåž‹ã§ä»¥ä¸‹ã®ãƒ•ォーマットã§è¿”ã£ã¦ãã¾ã™ã€‚
0xFFFFFFFF

24~31ビット alpha
16~23ビット red
8~15ビット green
0~7ビット blue

ã¤ã¾ã‚Šã€ä»¥ä¸‹ã®ã‚³ãƒ¼ãƒ‰ã§ãƒ”クセル毎ã«RGBカラーをå–å¾—ã§ãã‚‹ã¨ã„ã†ã“ã¨ã§ã™ã­ã€‚

ã¤ãŽã«ã€é…列をJavaã‹ã‚‰Cè¨€èªžã«æ¸¡ã™ã¨ãã®èª¬æ˜Žã€‚。。。

ã“ã®å‡¦ç†ã‚’C言語ã§è¡Œã„ãŸã„ãŸã‚ã«ã€ã“ã®ç¬¬ï¼‘引数ã®inté…列をJavaã‹ã‚‰Cè¨€èªžã«æ¸¡ã›ã‚Œã°ã„ã„ã§ã™ã­ã€‚方法ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ã—ã¾ã—ãŸã€‚
・Java言語å´

・C言語å´

åŒæ§˜ãªå‡¦ç†ã‚’Javaã§ã‚‚記述ã—ã¦ã€å‰å›žã¨åŒæ§˜ã«å®Ÿè¡Œã—ã¦ã¿ã¾ã—ãŸã€‚

çµæžœã¯ä»¥ä¸‹ã«ãªã‚Šã¾ã™ã€‚。。。

result
Javaã¨Nativeã§ç­”ãˆã‚‚一致ã—ã¦ã¾ã™ã­ã€‚æµ·ã®ç”»åƒã‚’使ã£ã¦ã¿ãŸã‚“ã§ã™ãŒblueã¨greenã®å¹³å‡å€¤ãŒé«˜ã„ã®ã§ãã¡ã‚“ã¨è§£æžã§ãã¦ã¾ã™ã­ã€‚ãã—ã¦é€Ÿåº¦ã‚‚Nativeã®æ–¹ãŒã‹ãªã‚Šæ—©ã„。画åƒå‡¦ç†ã«ã‚‚Android NDKã¯å分使ãˆãã†ã§ã™ã€‚
ã“れを応用ã™ã‚Œã°ã€ã€ŒAndroidã§ãƒ¢ã‚¶ã‚¤ã‚¯ç”»åƒã‚’作ã£ã¦ã¿ã‚‹ã€ã®ãƒ¢ã‚¶ã‚¤ã‚¯å‡¦ç†ã‚„ä»–ã®ç”»åƒå‡¦ç†ã‚‚高速化出æ¥ã‚‹ã¨æ€ã„ã¾ã™ã€‚皆ã•ã‚“ãœã²ã‚„ã£ã¦ã¿ã¦ãã ã•ã„。

今回ã¯ä»¥ä¸Šã¨ãªã‚Šã¾ã™ã€‚
æµ·ã«è¡ŒããŸã„。


Bitmap.setPixel()ã‚’setPixels()ã«å¤‰ãˆãŸã‚‰ï¼“å€é€Ÿããªã£ãŸã‚ˆ

No Comments »

ãšã„ã¶ã‚“å‰ã«ç”»åƒã‚’モザイク風ã«åŠ å·¥ã™ã‚‹ã‚¨ãƒ³ãƒˆãƒªã‚’書ãã¾ã—ãŸãŒã€ã‚れを少ã—ã„ã˜ã£ãŸã‚‰ã ã„ã¶æ—©ããªã‚Šã¾ã—ãŸã‚ˆã€ã¨ã„ã†ã”報告ã§ã™ã€‚

ã“ã‚“ãªã‚³ãƒ¼ãƒ‰ã§ãƒ¢ã‚¶ã‚¤ã‚¯å‡¦ç†ã«350~360msãらã„ã‹ã‹ã£ã¦ã¾ã—ãŸ

Android開発ã§ã®ãƒ‘フォーマンスTips(1) | Techfirm Android Lab
を見直ã—ã¦ã€ãƒ«ãƒ¼ãƒ—å‰ã«getterãªã©ã§å‚ç…§ã™ã‚‹å€¤ã¯ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã«ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã—ã¦ã¿ã‚‹ã¨ã€

310~320msã«ãªã‚Šã¾ã—ãŸã€‚
å°‘ã—ã§ã‚‚æ—©ããªã‚‹ã¨ã€ãƒ†ãƒ³ã‚·ãƒ§ãƒ³ãŒä¸ŠãŒã‚‹ã€‚

ã§ã‚‚ã“ã®ã‚³ãƒ¼ãƒ‰ã¯ã¾ã ã¾ã æ—©ããªã‚Œã‚‹ã¯ãšã ã€‚

今ã¯ãƒ«ãƒ¼ãƒ—ã®ä¸­ã§bitmap.getPixelã—ã¦setPixelã—ã¦1ピクセルå˜ä½ã§èª­ã¿æ›¸ãã—ã¦ã‚‹ã®ã§ã“れをガãƒãƒƒã¨ä¸€ç™ºã§é…列ã«å–り出ã—ã¦ã€ãƒ«ãƒ¼ãƒ—内ã§ã¯é…列をæ“作ã—ã¦ã€ãƒ«ãƒ¼ãƒ—後ã«setPixelsã§é…列をセットã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ã—ã¦ã¿ã‚‹ã€‚

ã“れã ã¨ã€90~110msã¾ã§æ—©ããªã£ãŸã€‚

bitmap.getPixes()ã«å¼•æ•°ã¯é †ç•ªã«
1.色ã®é…列。int[]ã“ã“ã«ãƒ”クセルデータãŒå…¥ã£ã¦ãã‚‹
2.offset。inté…列ã®ã©ã“ã‹ã‚‰æ›¸ãã“ã‚€ã‹ã€‚
3.謎
4.ビットマップã®ãƒ”クセルを読ã¿å§‹ã‚ã‚‹X座標
5.ビットマップã®ãƒ”クセルを読ã¿å§‹ã‚ã‚‹Y座標
6.ビットマップã®å¹…
7.ビットマップã®é«˜ã•

ã¨ã„ã†ã“ã¨ãªã®ã§ã€getPixelsã®å‰ã«new int[width * height]ã—ã¦ã„る。
Androidã§ã¯1ピクセルã®ã‚«ãƒ©ãƒ¼æƒ…å ±ã¯intã§è¡¨ã‚ã™ã®ã§ã€ãれを横×縦分ã®é…列ã§å—ã‘å–ã£ã¦ã„る。

setPixelsã¯getPixelsã®é€†ã€‚
第一引数ã®inté…列をbitmap上ã®ã©ã“ã«æ›¸ãã‹ã‚’指定ã™ã‚‹ã€‚

copyPixelsToBufferã‚„ copyPixelsFromBuffer ã®æ–¹ãŒæ—©ã„ã‹ã‚‚ã—れãªã„ãŒã¾ã è©¦ã—ã¦ã„ãªã„。
ãã£ã¨Big iguchiãŒã‚„ã£ã¦ãれるã«é•ã„ãªã„。


Android NDKを使用ã—ã¦Java言語ã¨C言語ã§é€Ÿåº¦æ¯”較をã™ã‚‹

11 Comments »

今回ã¯Android NDKを使用ã—ã¦ã€Javaコードã¨C言語ã§è¨˜è¿°ã•れãŸNativeコードã§é€Ÿåº¦ã®æ¯”較を行ãŠã†ã¨æ€ã„ã¾ã™ã€‚

ã¾ãšã¯NDKをインストールã—ã¾ã™ã€‚以下ã®ãƒªãƒ³ã‚¯ã‹ã‚‰ndkをダウンロードã—ã¾ã™ã€‚

http://developer.android.com/intl/ja/sdk/ndk/1.6_r1/index.html

ダウンロードã—ã¦ããŸã‚‰ä»¥ä¸‹ã‚’実行ã—インストールã—ã¾ã™ã€‚
$(NDKROOT)/build/host-setup.sh

ã“れã§ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ãŒå®Œäº†ã§ã™ã€‚ç°¡å˜ã§ã™ã­ã€‚

早速ã€Javaã®ã‚³ãƒ¼ãƒ‰ã‚’書ã„ã¦é€Ÿåº¦æ¯”較ã—ã¦ã„ãã¾ã—ょã†ã€‚

Read the rest of this entry »


Android開発ã§ã®ãƒ‘フォーマンスTips(2)

No Comments »

AndroidパフォーマンスTipsã€å‰å›žã®ç¶šãã§ã™ã€‚
Android開発ã§ã®ãƒ‘フォーマンスTips(1) | Techfirm Android Lab

Read the rest of this entry »


Android開発ã§ã®ãƒ‘フォーマンスTips(1)

2 Comments »

googleã¯å…¬å¼ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¨ã—ã¦Android開発ã«ãŠã‘るパフォーマンス設計ã®ãƒ™ã‚¹ãƒˆãƒ—ラクティスを公開ã—ã¦ã„ã¾ã™ã€‚
Designing for Performance | Android Developers

ã©ã‚“ãªã«å„ªã‚ŒãŸUIã§ã‚ã£ã¦ã‚‚ãƒ‘ãƒ•ã‚©ãƒ¼ãƒžãƒ³ã‚¹ã®æ‚ªã„アプリã¯ãƒ¦ãƒ¼ã‚¶ã«ã¨ã£ã¦ä½¿ã„ã«ãã„ã‚‚ã®ã«ãªã£ã¦ã—ã¾ã„ã¾ã™ã€‚
アプリã®ãƒ‘フォーマンスãƒãƒ¥ãƒ¼ãƒ‹ãƒ³ã‚°ã¯é‡è¦ã§ã™ã€‚

今回ã¯å…¬å¼ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’ベースã«ãƒ‘フォーマンス設計ã®ãƒ™ã‚¹ãƒˆãƒ—ラクティスã®ã”紹介ã§ã™ã€‚
Javaã®ä¸–界ã§å½“ãŸã‚Šå‰ã ã£ãŸã‚‚ã®ãŒã€Androidã®ä¸–界ã§ã¯é€šç”¨ã—ãªã„ã‚‚ã®ã‚‚多々ã‚ã‚‹ã®ã§è¦šãˆã¦ãŠããŸã„ã§ã™ã€‚
Read the rest of this entry »