・ このブログの記事(テキスト・画像)について

ラベル android の投稿を表示しています。 すべての投稿を表示
ラベル android の投稿を表示しています。 すべての投稿を表示

2012年12月17日月曜日

【Android】DayDreamとスクリーンセーバーの違いって・・

おはようございます!!

今日も気まぐれに日記をカキカキします (笑)
Androidの開発をやってて・・英語と日本語の壁にぶつかるとき多々があります。。

そんな愚痴をちょっとだけw
OS4.2新機能のDayDream


これって何よ??って身構えちゃうけど・・・
私のNexus7で確認すると・・・
スクリーンセーバーなんですよね・・
スクリーンセーバーの画面
具体的な設定画面

結局・・・・

スクリーンセーバーのことをわざわざ「DayDream」って読んでるんです。。

(間違ってたらごめんなさい)


スクリーンセーバーって和製英語なの??
と疑問に思ったのですが・・・検索すると英語がちゃんとある・・・

スクリーンセーバー(Screensaver) 


ま・・・これからは、Android業界用語では、スクリーンセーバーの事をDayDreamって呼ぶんだ!!
と理解しておきます。。w




2012年6月29日金曜日

【Android】4.1のエミュレータを使ってみます。

Android4.1のメモです。
【1.開発環境】
 下記です。

【2.SDKの準備】
昨日の夕方アップデートした時はまだ、Android4.1がなかったのですが。
今日アップデートしてみると、新しいのが提供されておりました!!

早速ポチットな~



回線遅いw

【3.エミュレータ作成】
これはいつもの通り、クリッククリック~
まず、OSのホームスクリーンの移動を楽にするために、
GPU emulationを有効にします。

ザックリとしてエミュレータの設定

Android4.1からエミュレータスキンのHD が加わったようです。
む・・・QHDのスキンは・・・・・ないですね~
そもそも、QHD(540x960)のような中途半端なディスプレイサイズは、海外でのニーズはないのかもしれません。
Android2.3の端末で何個かの機種は、QHDサイズの端末を見かけました。
今後は・・・・ないかもしれません。

エミュレータ作成完了~

エミュレータ起動

初見で思ったのは・・・しぶいデザインです><
【4.まとめ】
お!!
ナビゲーションバーがありますね~
今まで、エミュレータではナビゲーションバー表示ができませんでしたが・・・

ある!!

これで、だいぶ開発が楽になったのかな??

でも・・・エミュレータだとGPU Emulationのおかげでホーム画面は動かせますが・・・・・
その他のデフォルトアプリ起動がイマイチかな・・・・・最終的には端末が必要ですね。

お財布が・・・orz

でわでわ~


2012年4月5日木曜日

【JQueryMobileとPhoneGap】 Phone Gapを実装したActivityを終了させる編

前回の続き
Androidの機能を全部JQueryMobileとPhoneGapで作成って実際イメージつかないですよね?
そして、私の場合は
AndroidのActivityからPhone Gapを実装したActivityへ遷移後、バックキーではないボタンイベント操作でAndroidのActivityへ戻りたい時を考える事があります。
そんなときのために、
Phone Gap側のメソッドでPhoneGapを実装したActivityを終了させるためのメモです。

ベースは、前回の環境とします。

【JQueryMobileとPhoneGapで開発する目的】

 JQueryMobileとPhoneGapを採用することで、マルチプラットフォーム開発を目指す。
異なる、ディスプレイの大きさに対応したアプリ開発を目指す。

【環境】
Eclipse 3.7 (基本的な設定済みとする。)
Jquery mobile  1.0.1
Phone Gap 1.5
Android1.6 is01
Android2.3 003sh端末
Android4.0 Galaxy Nexus
JQueryMobileとPhoneGapの環境構築済みとする。
【1.JQueryMobileとPhoneGapの注意点】
・PhoneGap側に用意されているバックキーイベント扱いについての個人的な注意点
PhoneGap側に用意されているバックキーイベントを取得する処理は、JQueryMobileを使っている限り、使わない方が無難です。

初めて、PhoneGapのバックキーイベント処理をゴニョゴニョいじった時、困ったことが起きました。

PhoneGap側でバックキーイベントを取得する処理を追加した場合、従来のJQueryMobileで画面遷移をし、その後元の画面に遷移した時に
「PhoneGap側で最初に登録したバックキーイベント取得用コールバック関数」でやっている処理がUIに反映されない現象になったからです。

未だに良く分からないです。。。
私の現在のPhoneGapとJQueryMobileを使う上での注意点は、
バックキーのイベント等「PhoneGapとJQueryMobile同士がかぶる」機能は、実装しないほうが無難です。別の方法で実装することをまず考えたほうが、幸せになれると思います。
【2.ボタン押下後の変更】
下記のようにPhoneGapのメソッドである「navigator.app.exitApp();」を呼び出します。






 以上で、Phone Gapを実装したActivityを終了させることができました。

2012年4月4日水曜日

【Android】【Android4.0】 メニューキーがでないんだけど・・・・編

メモです。
【不具合?に出会う編】
Android4.03でゴニョゴニョいじっていたら、メニューキーが突然でなくなっていることに気が付きました。


いじったのは、android:targetSdkVersionを15にしただけ ><
(android:targetSdkVersionは、アプリ自身の対応APIの上限値設定ができる認識です。)

なにやら、「タイトルバーを非表示にしているアプリ
(@android:style/Theme.NoTitleBar.Fullscreenや@android:style/Theme.NoTitleBarのテーマを設定しているアプリ)では、targetSdkVersionを11以上にした直後
にHoneycomb以上でメニューボタン出ない」という現象になるようです。

その結果、ハードキーではないメニューキーが押せなくなるようです。



んで・・・どうしろとww




【解決案】
1.android:targetSdkVersionの記載をしない。
これを消したら、メニューがでたので・・・・・・解決策の一つに
 ただ・・・「targetSdkVersion」が使えないので、APIの上限設定ができない弊害が・・・・ww

2. APIレベルによって、タイトルバーが出る出ないの切り替えを行う。
正確には「@android:style/Theme.WithActionBar」 に設定する。(テーマを設定していない場合は、Honeycomb以上ではデフォルトで「@android:style/Theme.WithActionBar」になっているようです。)
とりあえず、Activityのテーマの場合分けをする
私の場合、は、XMLでActivityのテーマ を設定しています。
そのため、こいつの場合わけをして、API11以上の場合はタイトルを表示させることにします。
ActivityにMyThemeを設定する。
変更対象のフォルダとファイル


キャプチャ
GalaxyNexusでのキャプチャ画面

以上です。

2012年4月1日日曜日

【JQueryMobileとPhoneGap】 PhoneGapでUAを変更する編

前回の続き
UAを変えたいってことありますよね?
そんなときのために、
Phone GapでUAを変更するためのメモです。
ベースは、前回の環境とします。

【JQueryMobileとPhoneGapで開発する目的】

 JQueryMobileとPhoneGapを採用することで、マルチプラットフォーム開発を目指す。
異なる、ディスプレイの大きさに対応したアプリ開発を目指す。

【環境】
Eclipse 3.7 (基本的な設定済みとする。)
Jquery mobile  1.0.1
Phone Gap 1.5
Android1.6 is01
Android2.3 003sh端末
Android4.0 Galaxy Nexus
JQueryMobileとPhoneGapの環境構築済みとする。
【UAの変更】
1.DroidGapを継承したActivityで下記のようにオーバラードします。
UAをhohoと書き換えています。






 以上で、PhoneGapでUA変更が完了した。

2012年3月31日土曜日

【JQueryMobileとPhoneGap】 PhoneGapプラグイン作成編

前回の続き

Phone GapのToast用プラグイン作成を行う方法のメモ。
ベースは、前回の環境とします。

【JQueryMobileとPhoneGapで開発する目的】

 JQueryMobileとPhoneGapを採用することで、マルチプラットフォーム開発を目指す。
異なる、ディスプレイの大きさに対応したアプリ開発を目指す。

【環境】
Eclipse 3.7 (基本的な設定済みとする。)
Jquery mobile  1.0.1
Phone Gap 1.5
Android1.6 is01
Android2.3 003sh端末
Android4.0 Galaxy Nexus
JQueryMobileとPhoneGapの環境構築済みとする。
【手順】
1.せっかくなので、ライブラリAndroidプロジェクトでプラグイン構築を試みてみる。
Dev Guideによると
  • Library projects cannot include raw assets
    The tools do not support the use of raw asset files (saved in the assets/ directory) in a library project. Any asset resources used by an application must be stored in the assets/ directory of the application project itself. However, resource files saved in the res/ directory are supported.
どうやら、assetsフォルダ内部の リソースは
ライブラリプロジェクトでは、サポートしていないようです。
うむ・・・・この時点でライブラリプロジェクトを使用するメリットが無い・・・・・


ということで、ライブラリプロジェクトでプラグインの試みは終了~

 まじめにプロジェクト内部でプラグイン定義をしていく。
2.プロジェクト内部でプラグイン定義をしていく手順
1.javaファイル、javascript、XMLフォルダにplugins.xmlの記載を行う。




2.端末へインストールする。
main画面
Toastを確認した画面





 以上で、PhoneGap用のToastプラグイン作成が完了した。

2012年3月30日金曜日

【JQueryMobileとPhoneGap】 画面遷移編

前回の続き

画面遷移を行う方法のメモ。

【JQueryMobileとPhoneGapで開発する目的】

 JQueryMobileとPhoneGapを採用することで、マルチプラットフォーム開発を目指す。
異なる、ディスプレイの大きさに対応したアプリ開発を目指す。

【環境】
Eclipse 3.7 (基本的な設定済みとする。)
Jquery mobile  1.0.1
Phone Gap 1.5
Android1.6 is01
Android2.3 003sh端末
Android4.0 Galaxy Nexus
JQueryMobileとPhoneGapの環境構築済みとする。
【手順】
1.index.htmlにpageを追加する。 

2.端末へインストールする。
遷移前の初期画面、リストをタップする。
遷移後の画面





 以上で、画面遷移の設定が完了した。

2012年3月29日木曜日

【JQueryMobileとPhoneGap】 デフォルト画像表示編

前回の続き
 前回、JQueryMobileのcssファイルとjsファイルをコピペしただけだった。
これだと、アイコン画像が読み込まれません。
なので、読み込まれるようにしたいと思います。

【JQueryMobileとPhoneGapで開発する目的】

 JQueryMobileとPhoneGapを採用することで、マルチプラットフォーム開発を目指す。
異なる、ディスプレイの大きさに対応したアプリ開発を目指す。

【環境】
Eclipse 3.7 (基本的な設定済みとする。)
Jquery mobile  1.0.1
Phone Gap 1.5
Android1.6 is01
Android2.3 003sh端末
Android4.0 Galaxy Nexus
JQueryMobileとPhoneGapの環境構築済みとする。
【手順】
1.JQueryMobileでダウンロードしたフォルダのimagesフォルダをコピペしてasetes/www/
配下に持ってくる。


2.index.htmlにリストを追加する。 

3.端末へインストールする。
矢印のアイコン等が表示された。
4.imagesフォルダの設定をしなかった場合
矢印が表示されない。



 以上で、デフォルト画像の設定が完了した。

2012年3月28日水曜日

【JQueryMobileとPhoneGap】 環境構築編

【JQueryMobileとPhoneGapで開発する目的】

 JQueryMobileとPhoneGapを採用することで、マルチプラットフォーム開発を目指す。
異なる、ディスプレイの大きさに対応したアプリ開発を目指す。

【環境】
Eclipse 3.7 (基本的な設定済みとする。)
Jquery mobile  1.0.1
Phone Gap 1.5
Android1.6 is01
Android2.3 003sh端末
Android4.0 Galaxy Nexus

【手順】
JQueryMobileとPhoneGapで、初期設定をまとめる。 
手順としては、JqueryMobileを移植→PhoneGap移植→ザックリ表示
です。

1.現在の安定版であるJquery mobile 1.0.1 をダウンロードする。


2.解凍する。

解凍したファイル













3.とりあえず、Androidプロジェクトのassetes/www/にindex.html
を作成する。




4. JQueryMobileでいくつかプラグインがありますが、とりあえずdemosファルダにある下記ファイルをindex.htmlと同階層にコピペする。
・jquery.js
・jquery.mobile-1.0.1.min.css
・jquery.mobile-1.0.1.min.js


5.現在リリースされているPhone Gap1.5をダウンロードする。

6.解凍する。

7.とりあえず、lib\androidへ移動する

8.まず、xmlフォルダをコッピペし、Androidプロジェクトのresファルダ配下に貼り付ける。
→これによって、PhoneGapプラグインの読み込み設定完了。


9.AndroidManifestをいじる。
・ まずは、マルチディスプレイ対応のため、下記を追加


・次に、Phone Gapのルール?みたいで、端末を縦横切り替えをした時に、onCreateが走らないように設定をする。


10.libsフォルダを作成

11.cordova-1.5.0.jarをlibsフォルダにコピペし、ビルドパスを通す。
さらに、cordova-1.5.0.jsをassets/www/
配下に置く。(今回、PhoneGap機能は使っていないので、詳しい説明はあとで・・かな?)



12.こんどは、PhoneGapをActivityへ実装する。

13.端末にインストールしてみる。

インストールができた画面

以上で、環境構築が完了した。

2012年3月3日土曜日

Android GalaxyNexus の画面サイズ

Android開発をやっていますが、
特に疑問が解決できないのが、このGalaxyNexus

【画面サイズについて】
液晶ディスプレイとしては1280x720のサイズですが、

実際アプリのViewが確保できるサイズは、1184x720となります。
理由は、ナビゲーションバーの分だけ確保できる高さが短くなるためです。


フミュー ><

私は、layout-1184x720
と分岐させて対応しようと思っています。


これ以外に は・・・コードでゴリゴリやるしかないかもめ ><



2012年2月20日月曜日

MVCモデルについて ちょっとメモ

ふはぁ~
最近、引越しの準備に追われています。。


3/5が引越し日~


さてさて
【MVCモデルについてのメモ】

MVCについて
Webアプリ等、全てのアプリの基本ベースである
と自分の中で覚えています。

MVCの構造でないアプリ(ユーザに入力を求めないアプリ)
なんて・・・・単純で一方的なアプリ
(例えば、
・交通の信号機のアプリ
・クリスマスとかのイルミネーションライトを点滅させるアプリ
・温度を検知してランプを点灯させるアプリ。
等々)


Model・・・・
ザックリ例えるとデータベースと思ってます。

Androidでいうと・・・
AdapterやSQLiteやSharedPreferencesに相当するもの
また、Viewにデータを更新したりできる仕組みを提供するもの

View・・・
ザックリ例えるとUIに相当するものと思っております。
Androidでいうと・・・・View関連全般の事

Controller・・・・
ザックリ例えると、UIと連携する時のイベントの事と思っております。
Androidでいうと・・・
onClick、やActivityのライフサイクル全般の事

以上、
俺が理解してる範囲は
こんなところ



2012年2月9日木曜日

JNIでSOがロードできない・・・・原因は・・・・・

私の003shとGalaxyNexusでJNIアプリを動作させています。

ですが、003SHでは動作して、GalaxyNexusではsoファイルをロードできずエラーがでます。
エラーはこれ
FindClassでパッケージが見つかれないとのこと

同じソースなのに旨くいかない。




ムッキー!!!




調べてみると。
こんな回答が!!

ということで、その通りに変更!!!


・C++からJavaパッケージクラスの参照やインスタンスを生成するときの記述時
パッケージ名区切りは、「.」ピリオウドではなく、「/」スラッシュで記述 !!



お・・・読み込めた!!!
旨くいきました。



なるほど・・・003SHで入っているDalvikVMとGalaxyNexusでは、
FindClassの判定が厳しくなってるか ><





でわでわ ~





2011年12月5日月曜日

【Android】Androidのapkをデコンパイルやeclipseへデバック用にプロジェクトを読み込みしてみる。その2

前回のapkをデコンパイルする方法について・・・・・その2です。

1.環境
WindowsXP
Android開発環境
著作権上問題のないAndroidnoapkファイル
 ecilpse環境
dex2jarをダウンロード
jad をダウンロード
003SH 端末


2.手順~
手順の流れは下記になります。
  1. apkを解凍
  2. 解凍後、classes.dexの取り出し
  3. jarファイルを取り出すため、dex2.jarを使ってみる
  4. 生成されたclasses_dex2jar.jarを解凍して、classファイルを取得してみる
  5. classファイルから javaファイルを取得するため、jad というソフトを使ってみる。
  6. javaファイルゲット!!

 となります。
2.1 apkを解凍
 apkは、実質zip形式ファイルなので、zip解凍ソフトで解凍する。
zip解凍ソフトで解凍する。
zip解凍完了
 

2.2 classes.dexの取り出し
解凍されたclasses.dexを取り出す。
classes.dexを取り出す

2.3 jarファイルを取り出すため、dex2.jarを使ってみる
コマンドをポチット
 classes_dex2jar.jarが生成されます。

2.4 生成されたclasses_dex2jar.jarを解凍して、classファイルを取得してみる
解凍して、classファイルを取得する。
2.5 classファイルから javaファイルを取得するため、jad というソフトを使ってみる。
jadを実行して、javaファイルを生成する。

2.6 javaファイルゲット!!
javaファイルが生成された




でも、これって、Eclipse用にプロジェクトを読み込む場合・・すんなりとはいきません

うーん、javaファイルにデコンパイルできるのは、おいしいですね^^

2011年12月4日日曜日

【Android】Androidのapkをデコンパイルやeclipseへデバック用にプロジェクトを読み込みしてみる。

もし、自分のプロジェクトを紛失して、apkのみしか無い場合の事を考えて、プロジェクト作成できるか、ちょっと調べてみました。


ただ・・・・いろいろありますが2通りあることがわかりました。


1.環境
WindowsXP
Android開発環境
著作権上問題のないAndroidnoapkファイル
 ecilpse環境
apktoolとdex2jarをダウンロード (dex2.jarについては後日)
003SH 端末

2011年12月3日土曜日

【Android】画面解像度と画面密度~

Android開発をしていると画面解像度と画面密度の対処?がメンドクサイので自分的なメモをw
1.画面解像度
画面解像度とは、横x縦の総画素数の事と理解してます。
ですので、HVGAだとしても、横と縦が異なる場合があります。
そのため、見積もりの前提条件には、HVGA(320x480)と記載するようにしてます ^^

参考サイト



2.画面密度
これ・・・テコヅッタのでいろいろありますが・・・
minSdkVersionの記載を3から4にしたらレイアウトが劇的に崩れた ^^; 時のメモ
(1)まず、AndroidManifest.xmlの

の記述でxmlレイアウトをpx 単位で設定し、アプリを作成する。
(2)この状態で、アスペクト比が同じで画面密度が違う端末でレイアウト確認
->旨く表示されます。px 単位に設定したレイアウトが画面密度が異なる端末でも旨く同じように表示されます。
(3)に変更してアプリを起動すると
画面密度が異なる端末では、レイアウトが崩れます。
(4)対応としては、pxをdpに直しました。
また、動的に座標値を設定している処理については、画面密度のスケール分だけ調整値を入れて修正しました。

これらのことから・・・・
minSdkVersionを3にしていると(Android OS 1.5互換記述だと)pxをdp代わりに解釈するようです。
minSdkVersionを4にしていると(Android OS 1.6互換記述だと)pxはpxとして、dpはdpとして解釈するようです。


っと当時の私は結論にいたりましたww





2011年12月2日金曜日

【Android】CPU使用率について

最近、寒くてお腹をくだして・・・・トイレに篭った花水木です。 ^^;

さてさて
AndroidのCPU使用率について、メモして置きます。

1.環境
Windows
Androidの開発環境を設定済み
003SH端末やemulator

2.Android端末orEmulatorで、CPU使用率を調べる
Android端末orEmulatorのCPU使用率を調べた。
その結果、2通りを試すことができました。


2.1カーネルレベルでCPU使用率やメモリ消費容量を取得


adb shell vmstatによる、全プロセスの総合CPU使用率表示
このコマンドは仮想メモリの統計をレポートするためのに使用します。
参考サイト

上記サイトよりvmstatのヘッダパラメータ一覧抜粋、
1行目 2行目 説明
procs r CPUを割り当て中もしくは割り当て可能なプロセスの数。CPUの個数以下であることが望ましい。

b 割り込みを禁止しているプロセスの数。I/O待ちなどで割り込み不可能なときに発生。ゼロであることが望ましい。
memory swpd 使用している仮想メモリの量(KB)

free 空きメモリの量(KB)

buff バッファキャッシュに使用されているメモリ量(KB)

cache ページキャッシュに使用されているメモリ量(KB)
swap si ディスクからページインされるメモリの量(KB/秒)

so ディスクにページアウトしているメモリの量(KB/秒)
io bi ブロックデバイスから受け取ったブロック数(blocks/秒)

bo ブロックデバイスに送られたブロック数(blocks/秒)
system in 1秒あたりの割り込み回数。クロック割り込みも含む。

cs 1秒あたりのコンテキストスイッチの回数
cpu us ユーザー時間

sy システム時間

id アイドル時間。I/O待ちは含まない。

wa I/O待ち時間

あれ・・・Android端末へvmstatした場合のヘッダパラメータと違う・・・・
Androidにあるvmstatは通常のvmstatと違うということでしょうか?

謎です・・・^^;

何かご存知の方や参考サイトがありましたら教えてください ^^

2.2特定のプロセスIDの使用率を調べる
特定のプロセスIDの使用率を調べる処理をするバッチファイルを作成しました ^^
exeファイルとして公開します。
公開さきはここです。



2.2.1 command_check_cpu_log_on.exe
同階層にlog.txtファイルを生成して、そのファイルへログを追加していくexeファイルです。

起動時の画面

検索するパッケージ名に「sample」が含まれるプロセスのデータをlog.txtファイルへ追加します。

同階層にlog.txtファイルが作成された事を確認できます。

 このlog.txtファイルに検索するパッケージ名に対応する結果が追加されています。



2.2.2command_check_cpulog_off.exe
コマンドプロンプト上にログを出力するexeファイルです。

起動時の画面
コマンドプロンプト上にCPUの計測値が出力されます。




普段、これを使ってCPU使用率を調べています。

2011年11月29日火曜日

【Android】端末のcpu情報をコマンドから取得

端末のCPU情報をコマンドから取得
1.環境
Windows
Androidの開発環境を設定済み

2.コマンドプロンプトを起動してコマンドを打つ
コマンドプロンプトからadb接続後、cpuの情報を表示する



3.cpuのことについて
図の情報は、ソフトバンクからでている
003SHという通称GALAPAGOS携帯です。


これを見たからって、私には「ふーん」としかwww感想がありません^^;


ただ・・・・知らないのと知っているのとでは大きな違いがあるはず!!


ということで、メモしておきます。