2011/10/20

Android:Android4.0(Ice Cream Sandwich)エミュレータを起動してみた

目新しいので画像をペタペタ

ログイン画面
Home画面
ランチャー
ウィジェットが一覧表示されるようです
設定
日本語にしてみた
設定(日本語)

今日はこの辺でおしまい

2011/10/19

Android:Android SDK r14

ついこないだr13にしたばっかなんだけど、r14がリリースされていたので早速入れてみた。
おっ!Android4.0(API14) Ice Cream Sandwichに対応してそうですね。

SDK MamagerのUIも変更になっています。
Repositoryにすると見慣れた表示になりますね。

2011/10/14

Android:メモリの使用状況

次のコマンドで確認できるようです

●物理的なメモリの使用状況
c:> adb shell cat /proc/meminfo

●論理的なメモリの使用状況
c:> adb shell dumpsys meminfo

2011/10/13

Eclipse:Memory Analyzer(MAT)を設定する

DDMSのDump HPROF fileを選んでもMATの設定ができていないとデバッグウィンドウに文字化けの画面しか出ません。


MATの本家はここにあります。

<設定方法>
1.Eclipseの「ヘルプ」→「新規ソフトウェアのインストール」
2.「使用可能なソフトウェア・サイト」の文字をクリック
3.使用可能なソフトウェア・サイトから以下のURLにチェック
 http://download.eclipse.org/birt/update-site/3.7
 http://download.eclipse.org/mat/1.1/update-site/
4.http://download.eclipse.org/birt/update-site/3.7のBIRT 3.7 Engineだけにチェックしてインストールします。
5.http://download.eclipse.org/mat/1.1/update-site/は全部チェックしてインストールします。

設定が完了してから、DDMSのDump HPROF fileを選択するとGetting Start Wizardが表示されるようになる。

Leak Suspect Reportを選んでみるとデバッグウィンドウにこんな感じの円グラフが出てくるのでこれを元にMemory Leakを調べていく。

2011/10/05

Android:アイコンのデザインガイド

ここに記載されています。

GIMPあたりの画像ソフトで一旦960px×960pxくらいの大きさでアイコンを作成して、以下のサイズで画像を縮小してからエクスポートしてあげれば、ぼやけないアイコンになります。

  High 72*72px
  Medium 48*48px
  Low 36*36px

カラーパレットはこんな感じ。

2011/10/02

Android:リソースファイルの解像度(dpi)

ここに記載されています。

ldpi: Low-density screens; approximately 120dpi.
mdpi: Medium-density (on traditional HVGA) screens; approximately 160dpi.
hdpi: High-density screens; approximately 240dpi.
xhdpi: Extra high-density screens; approximately 320dpi. Added in API Level 8
nodpi: This can be used for bitmap resources that you do not want to be scaled to match the device density.

2011/09/21

Android:CPUクロックなどの取得

たまたま見つけたのでちょっとメモしとく。

/sys/devices\system/cpu/cpu0/cpufreqの下のファイルで確認

1)カレントクロック
 scaling_cur_freq
2)最大クロック
 cpuinfo_max_freq
3)最小クロック
 cpuinfo_min_freq
4)制御状態
scaling_governor
 (ondemand:高低の二段階、conservative:多段階)

ここら辺のファイルの値を参照すれば良いかもです。

2011/09/19

Android:CPU占有率を見てみる

これでOK(どんどん出てくるので、Ctrl+Cで止める)

c:> adb shell top

IS05でやってみるとこうなる。

※2011/09/24追記
 オプションを入れることでCtrl+Cを押さなくて良いようです。
 -m 上から何個分表示
 -n 表示回数

Android:アプリ起動時に必ず始めのActivityから開始する

Homeボタンで中断した後に、ランチャーなどからアプリが起動されたときに中断されたActivityではなく、スタートアップActivityから起動する方法。

<通常>
Activity1→Activity2→中断→起動(復帰)→Activity2

<スタートアップActivityから起動>
Activity1→Activity2→中断→起動(再起動)→Activity1 ・・・これをやる方法

AndroidManifest.xmlでルートActivityにandroid:clearTaskOnLaunch="true"を追加すれば良い。


    

    
        
            
                
                
            
        
        
        
    


中断→再起動→Activity1のタイミングでActivity2→Activity1の順番に終了させてくれます。
※bloggerだとソース一式置けないのね・・・トホホ。

2011/09/10

Android:proguardその2

proguardで署名にして出力したら2回目で失敗した・・・orz

「Conversion to Dalvik format failed with error 1」とか・・・

さっきできてたじゃん!!

あっちこっち調べたところ、\SDKのフォルダ\proguard\binにあるproguard.batの一番最後の行を次のように修正してあげて無事成功。
@ECHO OFF

REM Start-up script for ProGuard -- free class file shrinker, optimizer,
REM obfuscator, and preverifier for Java bytecode.

rem Change current directory and drive to where the script is, to avoid
rem issues with directories containing whitespaces.
cd /d %~dp0

IF EXIST "%PROGUARD_HOME%" GOTO home
SET PROGUARD_HOME=..
:home

set java_exe=
call "%PROGUARD_HOME%"\..\lib\find_java.bat

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9


あとは、プロジェクトのパス名にスペースが入ってる(C:\Documents and Settings\hogehoge\JavaProject\プロジェクト名 なんてなってる)とうまくいかないみたいです。

Android:proguardその1

proguardの設定

1.default.propertiesの一番最後に1行追加する

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=Google Inc.:Google APIs:8

proguard.config=proguard.cfg

2.プロジェクト→Androidツール→Export Signed Application Package

3.その後は画面の指示に従う

2011/09/05

XP:watchdogでブルースクリーン

最近、ちょと前からなんだけど、watchdogでボコボコブルースクリーンで落ちるようになり、騙し騙し使っていたが、そろそろ我慢が限界なので調べることにした。

まずはminidumpをとる設定(システムのプロパティ→詳細設定→起動と回復→最小メモリダンプ)


watchdogでブルースクリーンが発生したら、c:\windows\minidumpの中にminixxxxxx.dmpができるのでそいつをWinDbgで開いてやる


どうやらnv4_disp.dllが悪さをしているようでPC内をあさってみたところ、GFourceのドライバがかなり怪しい。

現在の最新が280.26だったので、ひとまずHDDの中にあったバージョンを古い(266.58)のに戻してみると現象が出なくなったので、ほぼ確定かな。

ひとまずこれで様子見してみます。

2011/09/01

Android:SDKに入っているアイコン

こんなところにもいくつかあるようです。

c:\SDKのインストール先フォルダ\platforms\android-x\data\res\drawable-xxxx


2011/08/31

Android:標準システムメニューアイコン

無いかなぁ~と思って探してみたらありました。Google先生のページ

こんな感じで指定してあげれば良いようです。(メニューを追加する場合)
MenuItem menuItem = menu.add(0, MENU_ITEM, 0, "Menu Item");
menuItem.setIcon(android.R.drawable.ic_menu_preferences);

また、AndroidManifest.xmlで指定する場合はこんな感じです。
android:icon="@android:drawable/ic_menu_preferences"

以下、表示結果です。(画像サンプルが無かったのでListViewでとりあえず表示させてみました)

2011/08/30

Android:透過pngを編集する場合

当たり前なのかもしれませんが、Windows付属のペイントで透過pngを縮小したら透過属性が吹っ飛んじゃいました。
透過pngを扱える画像編集ソフト(GIMPなど)で編集すればよかったんですね。トホホ。。。

2011/08/26

Android:Wi-FiのChannel Number

wifiManager.getScanResults()で取得するfrequencyを以下のテーブルのCenter値を使えばChannel Numberに変換できます。

また、Wi-Fi関係のアプリを作る場合、AndroidManifest.xmlには以下の行を追加してあげる必要があります。

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE">
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE">

Eclipse:Eclipse3.6の起動がうまくいかない場合

気がつけば、丸3ヶ月ぶりの投稿。。。

Eclipseの起動時に「Failed to create the Java Virtual Machine」と出た場合の対処。
(最近INDIGOに変更してからはこのエラーは見てませんが念のため)

eclipse.iniの-vmargsの前に下記の2行を追加します。(パスは適宜修正)

  -vm
  C:/Program Files/Java/jdk1.6.0_24/bin/javaw.exe



-Xmx512mを-Xmx256mに変更しても起動しましたが、javaw.exeの場所をEclipseに教えてあげる修正の方がよさそうですね。(メモリが足りないって言ってるのかな???)

2011/05/27

Android:UbuntuにIS05をadbデバイスとして認識させる

「$adb devices」ってやったときにデバイス名が「???????????? no permissions」って出てきたときの対策。

元ネタ:http://developer.android.com/guide/developing/device.html

1.デバイスファイルを作成
  /etc/udev/rules.d/に51-android.rulesという名前でファイルを作ります。
SUBSYSTEM=="usb", SYSFS{idVendor}=="04dd", MODE=="0666"
  ベンダーID(idVendor)はGoogleのサイトにのってますが、分からない場合は、次のコマンドでも調べることができます。
#lsusb

2.adbの再起動
#adb kill-server
#sudo /SDKのパス/adb start-server
  ※start-serverの時にsudoをつけるのがポイント!

2011/05/16

Android:ADBからキーイベントや文字列を送る

inputコマンドで出来ます。

<コマンド>
#adb shell input keyevent <evnt_code>
#adb shell
#input keyevent <evnt_code>

<input>
usage: input [text|keyevent]
input text <string>
input keyevent <event_code>

<event_code>
0 --> "KEYCODE_UNKNOWN"
1 --> "KEYCODE_MENU"
2 --> "KEYCODE_SOFT_RIGHT"
3 --> "KEYCODE_HOME"
4 --> "KEYCODE_BACK"
5 --> "KEYCODE_CALL"
6 --> "KEYCODE_ENDCALL"
7 --> "KEYCODE_0"
8 --> "KEYCODE_1"
9 --> "KEYCODE_2"
10 --> "KEYCODE_3"
11 --> "KEYCODE_4"
12 --> "KEYCODE_5"
13 --> "KEYCODE_6"
14 --> "KEYCODE_7"
15 --> "KEYCODE_8"
16 --> "KEYCODE_9"
17 --> "KEYCODE_STAR"
18 --> "KEYCODE_POUND"
19 --> "KEYCODE_DPAD_UP"
20 --> "KEYCODE_DPAD_DOWN"
21 --> "KEYCODE_DPAD_LEFT"
22 --> "KEYCODE_DPAD_RIGHT"
23 --> "KEYCODE_DPAD_CENTER"
24 --> "KEYCODE_VOLUME_UP"
25 --> "KEYCODE_VOLUME_DOWN"
26 --> "KEYCODE_POWER"
27 --> "KEYCODE_CAMERA"
28 --> "KEYCODE_CLEAR"
29 --> "KEYCODE_A"
30 --> "KEYCODE_B"
31 --> "KEYCODE_C"
32 --> "KEYCODE_D"
33 --> "KEYCODE_E"
34 --> "KEYCODE_F"
35 --> "KEYCODE_G"
36 --> "KEYCODE_H"
37 --> "KEYCODE_I"
38 --> "KEYCODE_J"
39 --> "KEYCODE_K"
40 --> "KEYCODE_L"
41 --> "KEYCODE_M"
42 --> "KEYCODE_N"
43 --> "KEYCODE_O"
44 --> "KEYCODE_P"
45 --> "KEYCODE_Q"
46 --> "KEYCODE_R"
47 --> "KEYCODE_S"
48 --> "KEYCODE_T"
49 --> "KEYCODE_U"
50 --> "KEYCODE_V"
51 --> "KEYCODE_W"
52 --> "KEYCODE_X"
53 --> "KEYCODE_Y"
54 --> "KEYCODE_Z"
55 --> "KEYCODE_COMMA"
56 --> "KEYCODE_PERIOD"
57 --> "KEYCODE_ALT_LEFT"
58 --> "KEYCODE_ALT_RIGHT"
59 --> "KEYCODE_SHIFT_LEFT"
60 --> "KEYCODE_SHIFT_RIGHT"
61 --> "KEYCODE_TAB"
62 --> "KEYCODE_SPACE"
63 --> "KEYCODE_SYM"
64 --> "KEYCODE_EXPLORER"
65 --> "KEYCODE_ENVELOPE"
66 --> "KEYCODE_ENTER"
67 --> "KEYCODE_DEL"
68 --> "KEYCODE_GRAVE"
69 --> "KEYCODE_MINUS"
70 --> "KEYCODE_EQUALS"
71 --> "KEYCODE_LEFT_BRACKET"
72 --> "KEYCODE_RIGHT_BRACKET"
73 --> "KEYCODE_BACKSLASH"
74 --> "KEYCODE_SEMICOLON"
75 --> "KEYCODE_APOSTROPHE"
76 --> "KEYCODE_SLASH"
77 --> "KEYCODE_AT"
78 --> "KEYCODE_NUM"
79 --> "KEYCODE_HEADSETHOOK"
80 --> "KEYCODE_FOCUS"
81 --> "KEYCODE_PLUS"
82 --> "KEYCODE_MENU"
83 --> "KEYCODE_NOTIFICATION"
84 --> "KEYCODE_SEARCH"
85 --> "TAG_LAST_KEYCODE"

2011/05/09

Ubuntu:Ubuntu 11.04が出てました

Ubuntu 11.04(Natty Narwhal)が4月の末にリリースされていたようなのでアップデートしてみました。
デスクトップインタフェースがUnityになっているようで、見かけは良いのですが慣れないと…です。
あとはOpenOfficeがLibreOfficeになっていました。
パッと見たところはこんな感じです。

2011/04/27

Android:CTS(start --plan Android)が途中で停止

以下の時途中で止まってしまう対策。
(Restart後に再Connectしない場合)

cts_host>start --plan Android
~省略~
CTS_INFO >>> Max ADB operations reached. Restarting ADB...
CTS_INFO >>> Restarting device ...
Device(xxxxxxxxxxxxxxxx) disconnected
Test stopped.

android-cts/repository/host_config.xmlを以下のように変更。

ここを
<!-- Number of tests executed between reboots. A value <= 0 disables reboots. -->

こうする
<!-- Number of tests executed between reboots. A value <= 0 disables reboots. -->
<&intvalue name="maxTestCount" value="-1" />

2011/04/26

Ubuntu:ターミナルサーバクライアントでWARNING

ターミナルサーバクライアントでUbuntuからWindowsXPへリモート接続した際に、
WARNING:Remote desktop does notsupport colour depth24; falling back to 16
なエラーが出ている場合、XP側でグループポリシーエディタを使ってリモート接続設定の変更をしてあげれば解決できます。

1.[スタート]→[ファイル名を指定して実行]→MMC→[OK]
  (Microsoft Management Consoleの起動)

2.[ファイル]→ [スナップインの追加と削除]→[追加]

3.[グループ ポリシー] を選択→[追加]

4.[ローカル コンピュータ]が選択されていることを確認して、[完了]→[閉じる]→[OK]

5.[コンピュータの構成]→[管理用テンプレート]→[Windowsコンポーネント]→[ターミナル サービス]

6.[色の解像度を制限する]→[有効](グラボの設定に依存:例24bit)に設定します。
  (初期値は未構成)

これで256色以上の解像度で接続できます。

2011/04/22

Android:Failed to create the SD card

Ubuntu10.10 64bitでAVD ManagerからAVD デバイスを新規で作成しようとしたら、
「Failed to create the SD card」と怒られてデバイス作成に失敗。。。

$ sudo apt-get install ia32-libs
で解決。SDKの実行ファイルが32bitだからのようです。

2011/04/18

Android:Activityの追加

1.Java Classの追加
  プロジェクトのところで右クリック後、「新規」→「クラス」でJavaクラスを追加します。
  「パッケージ」、「名前」を入力し、「スーパークラス」のところで「android.app.Activity」を選択します。
  
  「完了」ボタン選択で、クラスが追加されます。

2.AndroidManifest.xmlの修正
  「アプリケーション」タブの「Application Nodes」で追加します。
  「追加」ボタンを選択。

  「Activity」を選択して「OK」。

  「Name」のところの「参照」を選択。追加したActivityを選択して「OK」。

  AndroidManifest.xmlを保存すれば反映されます。

3.layoutファイルの追加

  「Android XMLファイル」を選択

  「ファイル」にファイル名を入力して「完了」(ファイル名はすべて小文字)
以上でActivityの追加作業は終了です。

2011/04/16

Android:startSubActivityってないじゃん

Androidの解説本を読んでいてちょっとはまったのでメモ。

アプリから別なアプリを起動する際に、startActivityとstartSubActivityが使えるようなことが書いてありますが、Androidのバージョンアップに伴いstartSubActivityのAPI名が変更になっているようです。下記のようにstartActivityForResultに置き換えると解決します。

変更前
 public void onClick(View v) {
  Intent intent = new Intent();
  intent.setClassName(PackageName, ClassName);
  startActivity(intent, 0); /* ココがエラーになる */
 }
変更後
 public void onClick(View v) {
  Intent intent = new Intent();
  intent.setClassName(PackageName, ClassName);
  startActivityForResult(intent, 0); /* ココを置き換える*/ 
 }

2011/04/05

Android:Virtual Deviceの起動時間の短縮

Androidのソースを落としてきて、ビルド&エミュレータで動かそう!をネタにしよう思ったんだけど、なかなかまとまった時間がないので、小ネタを一つ。

Android SDKのAVD ManagerからターゲットのADVを選んであげて、Device ram sizeを増やしてあげると起動がちょっぴり速くなります。

2011/03/30

Blogger:blockquoteの設定をしてみた

デフォルトテンプレートでblockquote(引用)の設定がされていなかったので変えてみた。
(コマンドラインっぽく背景が黒で文字を白にしてみたかったの)

下記を/* Postsの一番下のほうに追加
.post blockquote {
margin: 0px 25px 15px 25px;
padding: 0px 25px 0px 10px;
border: 1px solid #7A7A7A;
background-color: #000000;
}
.post blockquote p {
margin: 0px 0px 0px 0px;
padding: 10px 0px 10px 0px;
}
あとは<blockquote><span style="color: white">
と</span></blockquote>の間に文字を書いてあげると、こんな感じになる。

$ sudo shutdown -h now
まぁ、細かい設定はまた今度。

2011/03/27

Blogger:QRコードをつけてみた

使うかどうかわからないけどつけてみた。
URLをQRコードに変換した画像を貼り付けるのは能がないので、Google Chartを使ってみました。

ガジェットの追加からHTML/JavaScriptを選択して、下記のコードを追加してあげます。

<img src="http://chart.apis.google.com/chart?chs=150x150&cht=qr&chl="ここにブログのURLを入力" width="150" height="150" alt="QRコード" />
タイトルに「QR code」とか適当につけておしまい。
Google Chartにはこんな機能もあったんですね。

VirtualBox:DHCPを無効にする

以前、VirtualBoxを起動すると何故かDSiがWi-Fiに繋がらなくなり、色々調べたところVirtualBoxのDHCP機能が悪さをしてました。

ということで、VirtualBoxのDHCPをとめておく方法のまとめ
  • 「ファイル」→「環境設定」
  • 「ネットワーク」から「ホストオンリーネットワークを編集」
  • ここにある「サーバを有効化」を切ってやればいい
ルータのDHCPより先にVirtualBoxのDHCPがIPをDSiに配っちゃってたってオチでした。
どおりで変なアドレスが割り振られてたわけだ。。。(とあとで気づく)