SSブログ

Androidプロジェクトのソース構成 [Android]

久々にアプリ開発の続きをやろうかと思って、チュートリアルの続きを見てたら、すっかり前のが抜けてますね・・。やはり、こう言うのは、一気にやってしまう必要がありますね。

ま、それはそれとして、今回は各ファイルがどこにあるのかがよくわからなくなったので、こちらにちょろっと書かれていることを表にしときます。一部、私の追記あり(=間違っている可能性あり)。

AndroidManifest.xml マニフェストファイルです。アプリケーションの基本的な特徴を定義しておくファイルだとのこと。
src/ソースファイルの含まれるディレクトリ。
res/リソースが含まれる。具体的なリソースはさらに以下のサブディレクトリに分類されて保存される。
drawable-hdpi/high-density(hdpi)向けの描画オブジェクト(ビットマップとか)が保存されるディレクトリ。実際のディレクトリツリーを見ていたら「drawable-ldpi/」「drawable-mdpi/」「drawable-xdpi/」「drawable-xxdpi/」がありますね。それぞれ解像度が違うもの向けなんでしょう。
layout/アプリのユーザインタフェースを定義するファイルのディレクトリ。ま、名前からレイアウトの定義が含まれるのでしょう。
values/いろんなリソース(文字列や色とか・・)を定義するXMLファイルが含まれるディレクトリ。実際のディレクトリツリーでは「values-sw600dp/」「values-sw720dp-land/」「values-v11/」「values-swv14/」なんかがあります。「strings.xml」もここにあります。
menu/チュートリアルには書かれていませんでしたが、たぶんメニュー関連の定義が入るのでしょう。そのうち出て来るかも。
gen/
Android 4.2.2/
Android Dependencies/
bin/
libs/
ic_launcher-web.png
proguard-project.txt
project.properties


下の方の空欄の箇所は、チュートリアルに書かれていないけど、実際のプロジェクトにできてたディレクトリです。後で分かれば追記するかも知れませんし、そのままかも知れません・・・。






Androidアプリ開発再び [Android]

いろいろとやることが分断してなんなんですが、久々に(また)Androidのアプリ開発に興味がわいてきました。以前は、エミュレータを起動させるところまででやめたんですね。たしかエミュレータの動作が重すぎたせいもあって興味が失せた気も・・。現在は、Androidのタブレットも3台保有しており、Smartiaはほぼ置物状態になっているので、開発用の端末としてSmartiaを活用してみたいと思います。なんか、アプリが完成させられたらいいんですけどねぇ・・。

とりあえずは、チュートリアルをなぞっていきます。SDKのバージョンも上がっていると思うので、最新のにしたいと思いますが、一応前回の環境も残したまま新しいのを入れることにします。と言うことで、新規にやる場合と異なる点があったので、ここにメモっておきます。と思ったんですが、実施したのがちょっと前なので、何をしたかちゃんと覚えてないですね・・。記憶に残っているもののみメモっておきます。

さて、環境は前と変わらず、MacOS X の SnowLeopardです。まずは、SDKをダウンロードします。こちらのガイドに従って、ADT付きのものをダウンロードしてインストールしますがインストールは至極簡単で、落としたアーカイブを解凍して「/Developer/」にコピーするだけでした。

で、少しトラブったのがSDKの場所です。設定関連のファイルの場所が前のADTと同じディレクトリになっている様子で、その設定がそのまま残っているため、SDKの場所はこちらで設定し直す必要がありました。おそらく、新規にインストールした場合は自動で正しい場所が設定されるのではと想像しています。「ADT」→「環境設定」→「Android」で「SDK Location」に入れたADT配下のSDKのディレクトリを指定します。私の場合は「/Developer/adt-bundle-mac-x86_64-20130219/sdk」でした。

13052101.png
エラーメッセージが出てたかなんかで設定の必要性に気づいた


続いて、SDK Manager(「Window」→「Android SDK Manager」)で、必要そうなAPI向けのライブラリとかを入れます。私は、Smartia、KT-i7A、Nexus7に該当するものをダウンロードしておきました。

13052100.png
SDK Manager


で、ビルドした時に「Error generating final archive: Debug Certificate expired on xxxx」(エラーメッセージは忘れたので、今検索して逆引き)と言ったエラーメッセージが出たため調べたところ、「~/.android/debug.keystore」を削除すれば問題無しとのことで、その通りに実行しました。証明書の期限が切れているらしいです。これも以前のSDKの残骸のせいですね・・。

こんなくらいでしたかねぇ・・。Smartiaへの接続はチュートリアルに従ってすっと言った様な気がします。MacOS Xでは、ドライバのインストールも不要な様なので・・・。

まあ、ぼちぼち進捗は更新して行くつもりです(こんなんばっかですが・・)。



   

GPG [Android]

さて、前回のプロンプトでは名前を求められている様で、デフォルトとしてMacへのログインアカウントが表示されていたので、そのまま入力します。すると次はメールアドレスを求められている様です。ここはgoogleに媚を売って、Gmailのアドレスを入力。すると入力内容の確認の後、今度はカラーが表示されるかどうかの確認が来ました。で、まあカラー表示で了承したところ、初期化が完了したとのこと。

Your Name  [xxxxx]: xxxxx
Your Email [xxxxx@mac-mini.local]: xxxxx@gmail.com

Your identity is: xxxxx 
is this correct [y/N]? y

Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white 
  bold     dim      ul       reverse 
Enable color display in this user account (y/N)? y

repo has been initialized in /Volumes/android/work


・・・初期化は完了した様ですが、情報がどこに書き込まれたのかがよくわかりませんね・・・。workディレクトリにも「~/bin/」にも何か書き込まれた様な様子はありません。と思ってログを見直したら、「/Volumes/android/work/.repo/」に書き込まれている様ですね。隠しディレクトリでした。

*

さて、ここで、前回強く求められていたGPGをインストールしときます。もしかしたら、上のユーザー情報を入力する時に利用されるだけだったら無駄かも知れませんが、気にしないことに。

インストーラがあったので、それでインストールします。私が落としたのは、Version 2013.03.30で、OS X 10.5 以上が求められている様です。

13040200.png
インストーラ、アンインストーラ


パッケージの中にはインストーラとアンインストーラが入ってました。インストールが完了すると、キーの作成を求められたので、作成。

全然進捗はないですが、今回はここまで。

【参考】
GPGTools
Mac GNU Privacy Guard



マカフィー・ストア

Repoインストールミス [Android]

相変わらずたらたらと続けております当ブログですが、「~/bin/repo」の中身を見てみたところ、こんな感じになってました・・・。(長い行は末尾を省略・・)

<!DOCTYPE html>
<html lang=en>
  <meta charset=utf-8>
  <meta name=viewport content="initial-scale=1, minimum-scale=1, ...
  <title>Error 404 (Not Found)!!1</title>
  <style>
    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{...
  </style>
  <a href=//www.google.com/><img src=//www.google.com/images/errors/logo...
  <p><b>404.</b> <ins>That’s an error.</ins>
  <p>  <ins>That’s all we know.</ins>


まあ、インストールに失敗してますね・・。検索してみたところ、リポジトリが変更になっているとか。Androidのサイトはメンテされてないんですね・・。まあ、全てのページを最新情報で維持するのは難しいか・・・。

*

と思ったら、回答の参照先は私の見てたページと同じでした。・・・自分の実行したコマンドを良く見直してみたら、私が間違えていました。と言うことで、Androidのサイトは無罪でした・・・。

気を取り直して「repo init」を実行し直したら、次の通りに。

$ repo init -u https://android.googlesource.com/platform/manifest
warning: gpg (GnuPG) is not available.
warning: Installing it is strongly encouraged.

Get https://gerrit.googlesource.com/git-repo
remote: Counting objects: 101, done
remote: Finding sources: 100% (101/101)
remote: Total 2344 (delta 1420), reused 2344 (delta 1420)
Receiving objects: 100% (2344/2344), 1.34 MiB | 669 KiB/s, done.
Resolving deltas: 100% (1452/1452), done.
From https://gerrit.googlesource.com/git-repo
 * [new branch]      maint      -> origin/maint
 * [new branch]      master     -> origin/master
 * [new branch]      stable     -> origin/stable
 * [new tag]         v1.0       -> v1.0
 * [new tag]         v1.0.1     -> v1.0.1
 * [new tag]         v1.0.2     -> v1.0.2
 * [new tag]         v1.0.3     -> v1.0.3
 * [new tag]         v1.0.4     -> v1.0.4
 * [new tag]         v1.0.5     -> v1.0.5
 * [new tag]         v1.0.6     -> v1.0.6
 * [new tag]         v1.0.7     -> v1.0.7
 * [new tag]         v1.0.8     -> v1.0.8
 * [new tag]         v1.0.9     -> v1.0.9
 * [new tag]         v1.1       -> v1.1
 * [new tag]         v1.10.0    -> v1.10.0
 * [new tag]         v1.10.1    -> v1.10.1
 * [new tag]         v1.10.2    -> v1.10.2
 * [new tag]         v1.10.3    -> v1.10.3
 * [new tag]         v1.10.4    -> v1.10.4
 * [new tag]         v1.11.0    -> v1.11.0
 * [new tag]         v1.11.1    -> v1.11.1
 * [new tag]         v1.12.0    -> v1.12.0
 * [new tag]         v1.12.1    -> v1.12.1
 * [new tag]         v1.12.2    -> v1.12.2
 * [new tag]         v1.2       -> v1.2
 * [new tag]         v1.3       -> v1.3
 * [new tag]         v1.3.1     -> v1.3.1
 * [new tag]         v1.3.2     -> v1.3.2
 * [new tag]         v1.4       -> v1.4
 * [new tag]         v1.4.1     -> v1.4.1
 * [new tag]         v1.4.2     -> v1.4.2
 * [new tag]         v1.4.3     -> v1.4.3
 * [new tag]         v1.4.4     -> v1.4.4
 * [new tag]         v1.5       -> v1.5
 * [new tag]         v1.5.1     -> v1.5.1
 * [new tag]         v1.6       -> v1.6
 * [new tag]         v1.6.1     -> v1.6.1
 * [new tag]         v1.6.10    -> v1.6.10
 * [new tag]         v1.6.10.1  -> v1.6.10.1
 * [new tag]         v1.6.10.2  -> v1.6.10.2
 * [new tag]         v1.6.2     -> v1.6.2
 * [new tag]         v1.6.3     -> v1.6.3
 * [new tag]         v1.6.4     -> v1.6.4
 * [new tag]         v1.6.5     -> v1.6.5
 * [new tag]         v1.6.6     -> v1.6.6
 * [new tag]         v1.6.7     -> v1.6.7
 * [new tag]         v1.6.7.1   -> v1.6.7.1
 * [new tag]         v1.6.7.2   -> v1.6.7.2
 * [new tag]         v1.6.7.3   -> v1.6.7.3
 * [new tag]         v1.6.7.4   -> v1.6.7.4
 * [new tag]         v1.6.7.5   -> v1.6.7.5
 * [new tag]         v1.6.8     -> v1.6.8
 * [new tag]         v1.6.8.1   -> v1.6.8.1
 * [new tag]         v1.6.8.10  -> v1.6.8.10
 * [new tag]         v1.6.8.11  -> v1.6.8.11
 * [new tag]         v1.6.8.2   -> v1.6.8.2
 * [new tag]         v1.6.8.3   -> v1.6.8.3
 * [new tag]         v1.6.8.4   -> v1.6.8.4
 * [new tag]         v1.6.8.5   -> v1.6.8.5
 * [new tag]         v1.6.8.6   -> v1.6.8.6
 * [new tag]         v1.6.8.7   -> v1.6.8.7
 * [new tag]         v1.6.8.8   -> v1.6.8.8
 * [new tag]         v1.6.8.9   -> v1.6.8.9
 * [new tag]         v1.6.9     -> v1.6.9
 * [new tag]         v1.6.9.1   -> v1.6.9.1
 * [new tag]         v1.6.9.2   -> v1.6.9.2
 * [new tag]         v1.6.9.3   -> v1.6.9.3
 * [new tag]         v1.6.9.4   -> v1.6.9.4
 * [new tag]         v1.6.9.5   -> v1.6.9.5
 * [new tag]         v1.6.9.6   -> v1.6.9.6
 * [new tag]         v1.6.9.7   -> v1.6.9.7
 * [new tag]         v1.6.9.8   -> v1.6.9.8
 * [new tag]         v1.7       -> v1.7
 * [new tag]         v1.7.1     -> v1.7.1
 * [new tag]         v1.7.2     -> v1.7.2
 * [new tag]         v1.7.3     -> v1.7.3
 * [new tag]         v1.7.3.1   -> v1.7.3.1
 * [new tag]         v1.7.4     -> v1.7.4
 * [new tag]         v1.7.4.1   -> v1.7.4.1
 * [new tag]         v1.7.4.2   -> v1.7.4.2
 * [new tag]         v1.7.4.3   -> v1.7.4.3
 * [new tag]         v1.7.5     -> v1.7.5
 * [new tag]         v1.7.6     -> v1.7.6
 * [new tag]         v1.7.6.1   -> v1.7.6.1
 * [new tag]         v1.7.7     -> v1.7.7
 * [new tag]         v1.7.7.1   -> v1.7.7.1
 * [new tag]         v1.7.7.2   -> v1.7.7.2
 * [new tag]         v1.7.7.3   -> v1.7.7.3
 * [new tag]         v1.7.7.4   -> v1.7.7.4
 * [new tag]         v1.7.7.5   -> v1.7.7.5
 * [new tag]         v1.7.7.6   -> v1.7.7.6
 * [new tag]         v1.7.8     -> v1.7.8
 * [new tag]         v1.7.8.1   -> v1.7.8.1
 * [new tag]         v1.7.8.2   -> v1.7.8.2
 * [new tag]         v1.8.0     -> v1.8.0
 * [new tag]         v1.8.1     -> v1.8.1
 * [new tag]         v1.8.2     -> v1.8.2
 * [new tag]         v1.9.0     -> v1.9.0
 * [new tag]         v1.9.1     -> v1.9.1
 * [new tag]         v1.9.2     -> v1.9.2
 * [new tag]         v1.9.3     -> v1.9.3
 * [new tag]         v1.9.4     -> v1.9.4
 * [new tag]         v1.9.5     -> v1.9.5
 * [new tag]         v1.9.6     -> v1.9.6
Get https://android.googlesource.com/platform/manifest
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 96126  100 96126    0     0  50850      0  0:00:01  0:00:01 --:--:--  182k
From /Volumes/android/work/.repo/manifests.git/clone.bundle
 * [new branch]      tradefed   -> origin/tradefed
 * [new branch]      tradedef   -> origin/tradedef
 * [new branch]      tools_r20  -> origin/tools_r20
 * [new branch]      master-dalvik -> origin/master-dalvik
 * [new branch]      master     -> origin/master
 * [new branch]      ics-mr1    -> origin/ics-mr1
 * [new branch]      ics-mr0    -> origin/ics-mr0
 * [new branch]      gingerbread-release -> origin/gingerbread-release
 * [new branch]      gingerbread -> origin/gingerbread
 * [new branch]      froyo      -> origin/froyo
 * [new branch]      android-sdk-adt_r20 -> origin/android-sdk-adt_r20
 * [new branch]      android-sdk-adt_r16.0.1 -> origin/android-sdk-adt_r16.0.1
 * [new branch]      android-sdk-4.0.3_r1 -> origin/android-sdk-4.0.3_r1
 * [new branch]      android-sdk-4.0.3-tools_r1 -> origin/android-sdk-4.0.3-tools_r1
 * [new branch]      android-cts-verifier-4.0_r1 -> origin/android-cts-verifier-4.0_r1
 * [new branch]      android-cts-verifier-4.0.3_r1 -> origin/android-cts-verifier-4.0.3_r1
 * [new branch]      android-cts-4.0_r1 -> origin/android-cts-4.0_r1
 * [new branch]      android-cts-4.0.3_r2 -> origin/android-cts-4.0.3_r2
 * [new branch]      android-cts-4.0.3_r1 -> origin/android-cts-4.0.3_r1
 * [new branch]      android-cts-2.3_r12 -> origin/android-cts-2.3_r12
 * [new branch]      android-cts-2.3_r11 -> origin/android-cts-2.3_r11
 * [new branch]      android-cts-2.3_r10 -> origin/android-cts-2.3_r10
 * [new branch]      android-cts-2.2_r8 -> origin/android-cts-2.2_r8
 * [new branch]      android-4.0.4_r2.1 -> origin/android-4.0.4_r2.1
 * [new branch]      android-4.0.4_r2 -> origin/android-4.0.4_r2
 * [new branch]      android-4.0.4_r1.2 -> origin/android-4.0.4_r1.2
 * [new branch]      android-4.0.4_r1.1 -> origin/android-4.0.4_r1.1
 * [new branch]      android-4.0.4_r1 -> origin/android-4.0.4_r1
 * [new branch]      android-4.0.3_r1.1 -> origin/android-4.0.3_r1.1
 * [new branch]      android-4.0.3_r1 -> origin/android-4.0.3_r1
 * [new branch]      android-4.0.2_r1 -> origin/android-4.0.2_r1
 * [new branch]      android-4.0.1_r1.2 -> origin/android-4.0.1_r1.2
 * [new branch]      android-4.0.1_r1.1 -> origin/android-4.0.1_r1.1
 * [new branch]      android-4.0.1_r1 -> origin/android-4.0.1_r1
 * [new branch]      android-2.3_r1 -> origin/android-2.3_r1
 * [new branch]      android-2.3.7_r1 -> origin/android-2.3.7_r1
 * [new branch]      android-2.3.6_r1 -> origin/android-2.3.6_r1
 * [new branch]      android-2.3.6_r0.9 -> origin/android-2.3.6_r0.9
 * [new branch]      android-2.3.5_r1 -> origin/android-2.3.5_r1
 * [new branch]      android-2.3.4_r1 -> origin/android-2.3.4_r1
 * [new branch]      android-2.3.4_r0.9 -> origin/android-2.3.4_r0.9
 * [new branch]      android-2.3.3_r1.1 -> origin/android-2.3.3_r1.1
 * [new branch]      android-2.3.3_r1 -> origin/android-2.3.3_r1
 * [new branch]      android-2.3.2_r1 -> origin/android-2.3.2_r1
 * [new branch]      android-2.3.1_r1 -> origin/android-2.3.1_r1
 * [new branch]      android-2.2_r1.3 -> origin/android-2.2_r1.3
 * [new branch]      android-2.2_r1.2 -> origin/android-2.2_r1.2
 * [new branch]      android-2.2_r1.1 -> origin/android-2.2_r1.1
 * [new branch]      android-2.2_r1 -> origin/android-2.2_r1
 * [new branch]      android-2.2.3_r2.1 -> origin/android-2.2.3_r2.1
 * [new branch]      android-2.2.3_r2 -> origin/android-2.2.3_r2
 * [new branch]      android-2.2.3_r1 -> origin/android-2.2.3_r1
 * [new branch]      android-2.2.2_r1 -> origin/android-2.2.2_r1
 * [new branch]      android-2.2.1_r2 -> origin/android-2.2.1_r2
 * [new branch]      android-2.2.1_r1 -> origin/android-2.2.1_r1
 * [new branch]      android-2.1_r2.1s -> origin/android-2.1_r2.1s
 * [new branch]      android-2.1_r2.1p2 -> origin/android-2.1_r2.1p2
 * [new branch]      android-2.1_r2.1p -> origin/android-2.1_r2.1p
 * [new branch]      android-2.1_r2 -> origin/android-2.1_r2
 * [new branch]      android-2.1_r1 -> origin/android-2.1_r1
 * [new branch]      android-2.0_r1 -> origin/android-2.0_r1
 * [new branch]      android-2.0.1_r1 -> origin/android-2.0.1_r1
 * [new branch]      android-1.6_r2 -> origin/android-1.6_r2
 * [new branch]      android-1.6_r1.5 -> origin/android-1.6_r1.5
 * [new branch]      android-1.6_r1.4 -> origin/android-1.6_r1.4
 * [new branch]      android-1.6_r1.3 -> origin/android-1.6_r1.3
 * [new branch]      android-1.6_r1.2 -> origin/android-1.6_r1.2
 * [new branch]      android-1.6_r1.1 -> origin/android-1.6_r1.1
 * [new branch]      android-1.6_r1 -> origin/android-1.6_r1
 * [new tag]         android-sdk-adt_r20 -> android-sdk-adt_r20
 * [new tag]         android-sdk-adt_r16.0.1 -> android-sdk-adt_r16.0.1
 * [new tag]         android-sdk-4.0.3_r1 -> android-sdk-4.0.3_r1
 * [new tag]         android-sdk-4.0.3-tools_r1 -> android-sdk-4.0.3-tools_r1
 * [new tag]         android-cts-verifier-4.0_r1 -> android-cts-verifier-4.0_r1
 * [new tag]         android-cts-verifier-4.0.3_r1 -> android-cts-verifier-4.0.3_r1
 * [new tag]         android-cts-4.0_r1 -> android-cts-4.0_r1
 * [new tag]         android-cts-4.0.3_r2 -> android-cts-4.0.3_r2
 * [new tag]         android-cts-4.0.3_r1 -> android-cts-4.0.3_r1
 * [new tag]         android-cts-2.3_r12 -> android-cts-2.3_r12
 * [new tag]         android-cts-2.3_r11 -> android-cts-2.3_r11
 * [new tag]         android-cts-2.3_r10 -> android-cts-2.3_r10
 * [new tag]         android-cts-2.2_r8 -> android-cts-2.2_r8
 * [new tag]         android-4.0.4_r2.1 -> android-4.0.4_r2.1
 * [new tag]         android-4.0.4_r2 -> android-4.0.4_r2
 * [new tag]         android-4.0.4_r1.2 -> android-4.0.4_r1.2
 * [new tag]         android-4.0.4_r1.1 -> android-4.0.4_r1.1
 * [new tag]         android-4.0.4_r1 -> android-4.0.4_r1
 * [new tag]         android-4.0.3_r1.1 -> android-4.0.3_r1.1
 * [new tag]         android-4.0.3_r1 -> android-4.0.3_r1
 * [new tag]         android-4.0.2_r1 -> android-4.0.2_r1
 * [new tag]         android-4.0.1_r1.2 -> android-4.0.1_r1.2
 * [new tag]         android-4.0.1_r1.1 -> android-4.0.1_r1.1
 * [new tag]         android-4.0.1_r1 -> android-4.0.1_r1
 * [new tag]         android-2.3_r1_ -> android-2.3_r1_
 * [new tag]         android-2.3.7_r1 -> android-2.3.7_r1
 * [new tag]         android-2.3.6_r1 -> android-2.3.6_r1
 * [new tag]         android-2.3.6_r0.9 -> android-2.3.6_r0.9
 * [new tag]         android-2.3.5_r1_ -> android-2.3.5_r1_
 * [new tag]         android-2.3.4_r1_ -> android-2.3.4_r1_
 * [new tag]         android-2.3.4_r0.9_ -> android-2.3.4_r0.9_
 * [new tag]         android-2.3.3_r1_ -> android-2.3.3_r1_
 * [new tag]         android-2.3.3_r1.1_ -> android-2.3.3_r1.1_
 * [new tag]         android-2.3.2_r1_ -> android-2.3.2_r1_
 * [new tag]         android-2.3.1_r1_ -> android-2.3.1_r1_
 * [new tag]         android-2.2_r1_ -> android-2.2_r1_
 * [new tag]         android-2.2_r1.3_ -> android-2.2_r1.3_
 * [new tag]         android-2.2_r1.2_ -> android-2.2_r1.2_
 * [new tag]         android-2.2_r1.1_ -> android-2.2_r1.1_
 * [new tag]         android-2.2.3_r2.1 -> android-2.2.3_r2.1
 * [new tag]         android-2.2.3_r2 -> android-2.2.3_r2
 * [new tag]         android-2.2.3_r1 -> android-2.2.3_r1
 * [new tag]         android-2.2.2_r1_ -> android-2.2.2_r1_
 * [new tag]         android-2.2.1_r2_ -> android-2.2.1_r2_
 * [new tag]         android-2.2.1_r1_ -> android-2.2.1_r1_
 * [new tag]         android-2.1_r2_ -> android-2.1_r2_
 * [new tag]         android-2.1_r2.1s_ -> android-2.1_r2.1s_
 * [new tag]         android-2.1_r2.1p_ -> android-2.1_r2.1p_
 * [new tag]         android-2.1_r2.1p2_ -> android-2.1_r2.1p2_
 * [new tag]         android-2.1_r1_ -> android-2.1_r1_
 * [new tag]         android-2.0_r1_ -> android-2.0_r1_
 * [new tag]         android-2.0.1_r1_ -> android-2.0.1_r1_
 * [new tag]         android-1.6_r2_ -> android-1.6_r2_
 * [new tag]         android-1.6_r1_ -> android-1.6_r1_
 * [new tag]         android-1.6_r1.5_ -> android-1.6_r1.5_
 * [new tag]         android-1.6_r1.4_ -> android-1.6_r1.4_
 * [new tag]         android-1.6_r1.3_ -> android-1.6_r1.3_
 * [new tag]         android-1.6_r1.2_ -> android-1.6_r1.2_
 * [new tag]         android-1.6_r1.1_ -> android-1.6_r1.1_
remote: Counting objects: 19, done
remote: Finding sources: 100% (320/320)
remote: Getting sizes: 100% (70/70)
remote: Total 320 (delta 129), reused 320 (delta 129)
Receiving objects: 100% (320/320), 67.17 KiB, done.
Resolving deltas: 100% (129/129), completed with 4 local objects.
From https://android.googlesource.com/platform/manifest
 * [new branch]      android-4.1.1_r1 -> origin/android-4.1.1_r1
 * [new branch]      android-4.1.1_r1.1 -> origin/android-4.1.1_r1.1
 * [new branch]      android-4.1.1_r2 -> origin/android-4.1.1_r2
 * [new branch]      android-4.1.1_r3 -> origin/android-4.1.1_r3
 * [new branch]      android-4.1.1_r4 -> origin/android-4.1.1_r4
 * [new branch]      android-4.1.1_r5 -> origin/android-4.1.1_r5
 * [new branch]      android-4.1.1_r6 -> origin/android-4.1.1_r6
 * [new branch]      android-4.1.1_r6.1 -> origin/android-4.1.1_r6.1
 * [new branch]      android-4.1.2_r1 -> origin/android-4.1.2_r1
 * [new branch]      android-4.2.1_r1 -> origin/android-4.2.1_r1
 * [new branch]      android-4.2.1_r1.1 -> origin/android-4.2.1_r1.1
 * [new branch]      android-4.2.1_r1.2 -> origin/android-4.2.1_r1.2
 * [new branch]      android-4.2.2_r1 -> origin/android-4.2.2_r1
 * [new branch]      android-4.2_r1 -> origin/android-4.2_r1
 * [new branch]      android-cts-4.1_r1 -> origin/android-cts-4.1_r1
 * [new branch]      android-cts-4.1_r2 -> origin/android-cts-4.1_r2
 * [new branch]      android-cts-4.2_r2 -> origin/android-cts-4.2_r2
 * [new branch]      android-sdk-support_r11 -> origin/android-sdk-support_r11
   32bb163..b48922c  gingerbread -> origin/gingerbread
   ed09c39..6912769  ics-mr1    -> origin/ics-mr1
 * [new branch]      ics-plus-aosp -> origin/ics-plus-aosp
 * [new branch]      jb-dev     -> origin/jb-dev
 * [new branch]      jb-mr1-dev -> origin/jb-mr1-dev
 * [new branch]      jb-mr1-dev-plus-aosp -> origin/jb-mr1-dev-plus-aosp
 * [new branch]      jb-mr1.1-dev -> origin/jb-mr1.1-dev
 * [new branch]      jumper-stable -> origin/jumper-stable
   3954196..70c902c  master     -> origin/master
   b5a0d13..a7f38b7  master-dalvik -> origin/master-dalvik
 * [new branch]      tools_r21  -> origin/tools_r21
 * [new branch]      tools_r21.1 -> origin/tools_r21.1
   8b9be7c..fbb30a8  tradefed   -> origin/tradefed
 * [new tag]         android-4.1.1_r1 -> android-4.1.1_r1
 * [new tag]         android-4.1.1_r1.1 -> android-4.1.1_r1.1
 * [new tag]         android-4.1.1_r1_ -> android-4.1.1_r1_
 * [new tag]         android-4.1.1_r2 -> android-4.1.1_r2
 * [new tag]         android-4.1.1_r3 -> android-4.1.1_r3
 * [new tag]         android-4.1.1_r4 -> android-4.1.1_r4
 * [new tag]         android-4.1.1_r5 -> android-4.1.1_r5
 * [new tag]         android-4.1.1_r6 -> android-4.1.1_r6
 * [new tag]         android-4.1.1_r6.1 -> android-4.1.1_r6.1
 * [new tag]         android-4.1.2_r1 -> android-4.1.2_r1
 * [new tag]         android-4.2.1_r1.1 -> android-4.2.1_r1.1
 * [new tag]         android-4.2.1_r1.2 -> android-4.2.1_r1.2
 * [new tag]         android-4.2.1_r1__ -> android-4.2.1_r1__
 * [new tag]         android-4.2.2_r1_ -> android-4.2.2_r1_
 * [new tag]         android-4.2_r1___ -> android-4.2_r1___
 * [new tag]         android-cts-4.1_r1 -> android-cts-4.1_r1
 * [new tag]         android-cts-4.1_r2 -> android-cts-4.1_r2
 * [new tag]         android-cts-4.2_r2 -> android-cts-4.2_r2
 * [new tag]         android-sdk-support_r11 -> android-sdk-support_r11

Your Name  [xxxxx]: 


プロンプトが出て、入力待ちになってるんですが、何を入れればいいのやら・・?

まあ、実行結果を見て行くとまず、「gpg (GnuPG)」のインストールを強く求められています。何に使うんでしょうか?後は特に問題はなさそうです。

(ログで)記事が長くなったので、今回はここまでにしときます。

つづく。


【参考】
repoのinitエラーの回避策を教えてください - 日本Androidの会





Repo [Android]

前回の続きを読んで行くと、Android 4.0.x 以前のブランチのビルドには Leopard or Snow Leopard + MacOS 10.5 SDK が必要だとのこと・・・。Android のバージョン毎に違う環境を用意しないといけないんですねぇ・・。個人的には最終的に保有している端末向けに何かビルドできればうれしいとか思ってたんですが、ちょっと厳しいかも・・。

他にもいろいろ書かれているので、まとめて見ると、下記の様な感じです。

  • Xcodeは3.1.4以降
  • gccは4.2
  • MacPorts
  • make, git, GPGのパッケージをMacPortsから取得
    →「POSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg


MacPortsを入れたら、PATHの設定が必要な様です。「/usr/bin」の前に「/opt/local/bin」を入れろとか。これは「~/.bash_profile」内に「export PATH=/opt/local/bin:$PATH」を加えればいい様です。

文章中には書かれていませんが、実行しているコマンドを見る限り、SDLも入れる必要がある様です。

後、ICS(4.0.x)以前のバージョンのビルドだと、makeのバージョンも戻す必要がある様ですが、話が発散するので、とりあえずは、最新ブランチのビルドに専念します。それでも、MacPortsくらいは入れといた方がいいんですかね・・。

*

まあ、どうせ環境が整ってないのでその辺は都度考えることにして、まずはソースのダウンロードです。その前にRepoを入れましょうとのこと。ずいぶん前に「git」は入れた気がしますが、バージョンが古いんでしょうねぇ・・。まあ、言われる通りにRepoをインストールして行きます。

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo


次にRepoの初期化です。case-sensitiveなファイルシステムで実行せよとのことなので、前回作成したファイルシステムで実行します。

$ mkdir work
$ cd work
$ repo init -u https://android.googlesource.com/platform/manifest
/Users/xxx/bin/repo: line 1: syntax error near unexpected token `newline'
/Users/xxx/bin/repo: line 1: `<!DOCTYPE html>'


・・・Repoがうまく動いてないですね。インストールに失敗したんですかね。と言うか、何か環境が足りてないのか・・?


つづく。

【参考】
Initializing a Build Environment - android open source project
Downloading the Source Tree - android open source project
MacPorts Project






Androidのソース [Android]

ご無沙汰しております。ちょっと、更新する暇が取れなくて、放置していたところ、だんだん更新するのがめんどくさくなって来て、気づいてみれば、年が明け、前回の更新からずいぶん経ってしまいましたね。一度、更新を止めると再開が面倒になって、ダメですね。今週から、なんとか更新を再開したいと思います・・。でも、ペースはゆっくりと・・。

さて、sqliteもいいのですが、年末に何気なく、Android ってソースが公開されているんよね〜、でもビルドにはLinuxが必要とか言う話だったね〜。と関連情報を検索していたところ、「 To build the Android source files, you will need to use Linux or Mac OS.」と言う記述がっ! デフォルトでMacOSも考慮されてるみたいですねっ!Macがサポートされていて、Windowsはサポートされてないってめずらし〜・・・。くもないんでしょうか??

せっかくなので、あまり意味はないですが、ソースを落としてビルドを試してみましょう。まあ、すんなり行くとは思いませんが・・・。

*

と言うことで、Android open source projectのページを見ていたら、結構ドキュメントが充実している様です。ソースコードのダウンロードサイズは約8.5GB、ビルドをするには30GB〜100GB以上のフリースペースが必要だとか。とりあえず、500GBのUSBハードディスクを空けました。

さっそく、Mac OS Xのビルド環境構築の手引きを見て行きます。まずは、これです。

・case-sensitiveなファイルシステムを使ってください

MacOS Xはデフォルトでは、大文字小文字を区別しないファイルシステムになっています。確か、インストール時とかにどっちか選べた気がしますが、各種アプリが区別しないことを前提になっているので、区別する方を選択すると何かとトラブルに巻き込まれることがあるとか聞いたことがある様な気がします。Androidでは、逆にgitが大文字小文字を区別するので、それでは問題が出るとのこと。と言うことで、case-sensitiveなディスクイメージを作りましょうとのことです。説明を参考に下記の設定としました。

  • 「ディスクユーティリティ」を立ち上げ、「新規イメージ」をクリック
  • 上部の名前は「android.dmg.sparseimage」
  • 下部の名前は「android」
  • サイズはカスタムの50GB
  • フォーマットは「Mac OS拡張(大文字/小文字を区別、ジャーナリング)」
  • 暗号化は「なし」
  • パーティションは「単一パーティション(アップルパーティションマップ)」
  • イメージフォーマットは「スパース・ディスクイメージ」


これで、ディスクイメージが出来ました。&勝手にマウントされてました。頭の方で、30GB〜100GBくらい必要かもと書かれていましたが、ここでは、ミニマム25GBで、実際に作成しているのは40GBの様だったので、50GBにしましたが、後々足りなくなるかも知れませんね・・・。

次に必要な環境として、下記があげられています。

・SnowLeopard or Lion
・Xcode 4.2

私のMacはSnowLeopardで動いていますが、Xcodeのバージョンを調べてみると、3.2.6でした・・・。ADCに行ってみると、今のバージョンは4.6とのこと。バージョンが異なってると、トラブルの元になる可能性もありますが、とりあえずこれで行こうかと思ったところ、リリースノートを見たら、LionかMountain Lionじゃないと動かない様子・・。じゃあ、少し古いのでもと探していたら、SnowLeopard用の4.xが見つかりません・・・。

*

どうやら、SnowLeopard用のXcode4.2は販売されてた様ですね・・・。販売されていた当時はADCに登録していたらダウンロードできた様ですが、今では手に入らない様子・・・。

と言うことで、とりあえず、気にせずにXcodeは3.2.6で進めて行こうと思いますが、いきなり頓挫かも・・・。

【参考】
Androidソースコード検索サービス - Developer Collaboration Project
Android open source project
XCodeをSnow leopardにインストールでエラーになる件 - WEB系エンジニアの備忘録




NEC Direct(NECダイレクト)

Androidエミュレータ起動! [Android]

久々にAndroidの開発環境でもいじろうかなと思い立ち、まだ繋げた事の無いSmartiaに接続してみるかと思って、以前どこまでやったのか確認してみたところ・・・、エミュレータを動かす前の段階で終わってました・・。何だそれ?

今回はエミュレータで動作を見るところまでやってみる事にします。

*

久々にeclipseを立ち上げました。前回は、「Hello, World」のチュートリアルからとっかかろうとしてた様ですが、今回はサンプルを実行してみたいと思います。ちなみに、サンプルは「Developer/android-sdk-mac_86/samples/android-7/」にインストールされていました。なお、「Developer」以下にコピーしたのは私の判断です。

さて、使用するサンプルですが、サンプルのディレクトリをざ〜っと見ていて気になった「Snake」と言うのを使う事にします。サンプルのページによると、「new Android Project」を実行して、「Create project from existing source」を選択しろとのことです。実際に私が行った手順は下記の通りです。

  • 「File」→「New」→「Project...」を選択
  • 「New Project」のダイアログで「Android」→「Android Project」を選択して「Next>」


「Next>」ボタンを押すと、下の画像の通り、いくつか設定が必要そうな画面になりました。

11100200.png
ここの説明も欲しいんですが・・


この画面で設定した内容は下記の通りです。

  • 「Project name」に「Snake」と入力
  • 「Contents」内の「Create Project from existing sam...」を選択
  • 「Build Target」内の「Android 2.1-update1」にチェック
  • 「Contents」内の「Samples」から「Snake」を選択


順序は私が操作した順です。特にこの順じゃないといけないとかではないでしょう。「Finish」がデフォルトになってるので、そのまま「Finish」を押します。

これで、Eclipseのパッケージのところに「Snake」のプロジェクトができました。

11100201.png
中身を広げてます


この後の説明が無いですねぇ・・。仕方が無いので、適当に試したところ、下記の手順で実行ができました。

11100203.png
メインのソースを開いて実行


  1. 「Package Explor」から「Snake」→「src」→「com.example.android.snake」→「Snake.java」をダブルクリック
  2. ツールバーの「11100204.png」をクリック


これで、えらい時間がかかってますが、Androidが起動しかけている様です。で、しばらくして、この画面。

11100205.png
う〜ん・・・、無視


とりあえず「Force close」をクリックしたところ、Snakeが起動した様です。

11100206.png
無事起動


で、Play!

11100207.png
とろい・・・


超スローな動作ですが、とりあえずは動いた様です。オンフックするとロック画面に戻ってしまったので、エミュレータでは、eclipseから実行した(要するに自分で開発中の)アプリのみしか動かせない様です。

ちなみに、一連の動作でConsoleパネルに出ていたログは次の通りです。

11100208.png
なんか警告が出てますね・・


まあ、何となく動かす事ができましたが、この動作速度では、実際のデバグには使えないですねぇ・・。後、画面が縦長なのが気になります。Smartia向けの開発を考えると、横長にしなくては・・・。ちなみに、サンプルのソースのライセンスはApache License, Version 2.0だそうです。


【参考】
Getting the Samples - android developers
Apache License, Version 2.0 - The Apache Software Foundation
Snake - Snake - android developers
Technical Resources - android developers



   

仮想実行環境の作成 [Android]

今週はAndroidの開発環境でもいじります。インストールを終えて、ほったらかしにしてたんですが、さて、実際にアプリを作るとなれば、何をすればいいんでしょうか・・? android developersの中をちらちら見ていましたが、「Hello, World」のチュートリアルがあったので、それからとっかかりましょうか。ところで、以前から思ってたんですが、"Hello, World"って、英語圏では自然なんですかねぇ・・? 日本語では「こんにちわ、世界」と言うのはおかしな感じなので、「みなさん、こんにちわ」くらいが自然ですかねぇ・・。と、そんな事はどうでもいいんですがね・・。

*

さて、チュートリアルを見たところ、最初にAVD(Android Virtual Device)を作成しましょうとなってます。が、なんかコマンドラインで作成する事になってますね・・。う〜んと思って英語版を見たところ、Eclipseから作成できる様な事が書かれています。日本語版の方は情報が古いのか・・? 仕方がないので、英語版を参考にする事にします。

チュートリアルに従って「Window」→「Android SDK and AVD Manager」を選択したところ、下記のダイアログが出ました・・・。

11021500.png
SDKの位置を設定しろとか


SDKの位置を設定してませんでしたかね?とPreferenceを確認したところ、ちゃんと設定していました。念のため「Apply」をクリック。再度、「Window」→「Android SDK and AVD Manager」を選択したところ、マネージャが立ち上がりました。

11021501.png
No AVD available


マネージャは「Virtual devices」が選択されている状態で、AVDが一つも無い様になっています。チュートリアルに従って「New...」をクリック!さらにダイアログが立ち上がりました。

各項目について、一応、ターゲットであるSmartiaを参考に下記の通りに設定します。

11021502.png
一応、Smartia仕様


詳細は次の様な感じ。

Name「SmartiaEmulator」と設定。空白を含んだところ、怒られたので、そこは詰めました。
Target「Android 2.1-update1 - API Level 7」と設定。SmartiaはAndroid 2.1なので・・。
SD Card2048MBで設定。何に使うのか分かりませんが、一応、Smartiaに2GBのカードを挿してるので・・。「File」の項目があるので、もしかしたら開発時には本物のSDカードを挿す必要があるのかも・・?「File」はディスクイメージを用意する必要があるのでしょうか??
Skin「WVGA800」を選択。画面サイズの様ですが、Smartiaは「800x480」の画面サイズなので、これを選択しました。
Hardwareデフォルトで「Abstracted LCD density」と「Max VM application heap size」が設定されていましたが、「New」を押して、Smartiaで搭載されているデバイスについて追加しておきました。「DPad」って何?とと思ったら電話の「テンキーパッド」の様です。これは、非サポート。設定内容はざっと下記の様な感じです。
Abstracted LCD density240
Max VM application heap size24
Camera supportyes
Maximum horizontal camera pixels2048
Maximum virtical camera pixels1536
Accelometeryes
SD Card supportyes
Audio playback supportyes
Audio recording supportyes
Device ram size384
Battery supportyes
GPS supportyes
Touch-screen supportyes


これらの設定で、「Create AVD」をクリック。ちょっと時間がかかりましたが、AVDが作成されました。

11021503.png
ちゃんと使えるかは不明。


ヒープサイズなど、多少気になるところはあるんですが、取りあえずこれを使う事にします。

つづく。




   

Android SDKのインストールのつづき [Android]

さて、前回の続きでInstalling the SDKのページのAdding Platforms and Other Componentsを実行していきます。

AVD Managerと言うものを利用して、「Android Platform」と「SDK Platform-tools」をインストールせよとの事。additional componentも強く推奨するとの事ですが、今は意味がよくわかりません・・。AVD ManagerはEclipseの「Window > Android SDK and AVD Manager」から起動できるとの事です。

11011800.png
「AVD」は「Android Virtual Devices」の略の様です


「Available packages」を見てみると、ずらずら〜っとたくさんパッケージが出てきました。推奨されている内容を見て、選んだのは「Android SDK Platform-tools, revision 1」「Documentation for Android SDK, API 9, revision 1」「SDK Platform Android 2.1, API 7, revision 2」「Samples for SDK API 7, revision 1」「Google APIs by Google Inc., Android API 7, revision 1」の5つです。

11011801.png
ドキュメントは最新向けのみ・・


保有しているSmartiaのAndroidのバージョンは2.1なので、SDKも2.1向けのみを落とす事にしました。

ダウンロード終盤で「ADB Restart」と言うダイアログが出ました。何のことか分かりませんが「Yes」。

11011802.png
Android Debug Bridge」の様です


で、インストールが終わった様です。入れた一覧は「Installed packages」で確認できます。

11011803.png


ようやく、インストールが完了しました。



   

新年一発目は・・? [Android]

年が明けてからちょっと間を空けてしまいましたが、昨年は結局1本もアプリを作成する事ができませんでした。今年は1本くらいは完成させたいなぁとぼんやり思っていますが、まあ、のんびりとやっていきたいと思います・・。

ところで、話は変わりますが、昨年末Smartiaと言う端末を購入しました。Androidを搭載したタブレットです。と言う事で、今年はAndroidのアプリの開発もしたいなぁと思います。。・・・Qtはもういじらないと言う訳ではなくて、両方ぼちぼち触っていこうと思ってるんですが・・。・・さらに上の目標の到達が遅くなる気もしますね・・。と言うか、二兎追うものは一兎をも得ず(卯年だけに・・)??

*

まずは開発環境をいれなければなりません。が、Macで開発できるらしい事は知ってますが、他は何も知らないので、取りあえずandroid developersのサイトからチェックします。

SDKのタブでDownload the Android SDKのページに移ったところ、Mac OS X用はintel機用しか用意されてないみたいですね。まあ、私は問題ありません。取りあえず、SDKをダウンロードしときます。

で、実際のインストールの詳細はInstalling the SDKのページに書かれていました。まずは「コンピュータを準備せよ」との事。System Requirementsをチェックします。Mac OS X は10.5.8以降だそうです。IDEにはEclipseを利用との事。3.4以降との事ですが、私のMacは既にEclipseが入ってました。いつ入れたんでしょうか?

と思って、立ち上げたところ「AIR GEAR」とやらが出てきました・・・。そう言えば、AIRの勉強でもしようかと思いついた事がありました。結局、何もしてないですけどね・・。まあ、ほっておいて、バージョンを確認したところ、3.4.2でした。取りあえず、Eclipseのバージョンはクリアです。

11011100.png
最新ではないですが・・



続いて、JDT pluginが必要だとの事。設定項目にJava関連のものがあるので、たぶん入ってるでしょう。

コンパイラとして、JDK 5かJDK 6が必要だとの事。入ってるのかどうかよくわからなかったのでターミナルから「javac -version」と入力してみたところ「javac 1.6.0_22」だそうです。これはJDK 6になるんでしょうか・・?よくわかってませんが、まあいいでしょう。

で、Android Development Tools (ADT) pluginを推奨するとの事。取りあえず、入れときます。Installing the ADT Pluginの項目を見たところ、Eclipseから直接インストールできる様ですね。Eclipse 3.4 (Ganymede) の項目を参考に設定していったところ、「Android DDMS」「Android Development Tools」「Android Hierarchy Viewer」と言うのが出てきました。今は「Android Development Tools」だけを入れときます。

11011101.png
バージョンは「8.0.1v201012062107-82219」


ADTのインストール後、Eclipseを再起動しました。続いて、Configuring the ADT Plugin説明の通り設定をしようと思ったら・・、あれ?既にSDKがインストールされている事になってます・・。まず、System Requirementの確認をしていたところなので、私はSDKをまだ入れてませんでした・・。う〜ん。

と言う事で、SDKのインストールのDownloading the SDK Starter Packageの箇所に戻ります。と、先程落としたSDK(私が落としたのは「android-sdk_r08-mac_86.zip」)を「安全な」場所に解凍しろとの事。意味がよく取れていませんが、一応、作業用のディレクトリを作成して、そこに解凍しました。

続いて、ADT Pluginを入れろとの事なので、先程のページに戻ります。・・・。なんか読んでいると先程のSDKは解凍した箇所で運用される様な雰囲気に感じますね。念のため、「/Developer/android-sdk-mac_86」に移動させました。

さて、ADTの設定をしようとしたところ、使用バージョン等のデータをGoogleに送るのを許可して欲しいとか言うダイアログが出てきました・・。あんまり、こう言うのは好きではないんですけどね・・・。まあ、一応後からオフにもできる様なので、了承しときました・・。ちなみに、設定は「ddms」ツールで行うらしく、「File > Preferences > Usage Status」から行うそうです。・・・って、DDMSは先程ADTをインストールする時にチェックを入れてなかったですね。これも入れとかないとダメか・・。

11011102.png
裏で何かされるのは嫌ですね・・


ここで、SDKの位置として、移動させた「/Developer/android-sdk-mac_86」を指定しておきました。

続いて、Installing the SDKのページのAdding Platforms and Other Componentsの項目に移ります。って、記事が長くなりましたね・・。相変わらず、歩みが遅いですが続きは次回に・・。

つづく。



   

ブログを作る(無料) powered by SSブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。