【その1】mixiさんのAndroidTraingを元にAndroidを勉強してみよう!
「1. まえがき」あたりのメモ(mixiのAndroidTraining)
「1. まえがき」の「1.Android-OSについて」~「6.Android のビルドについて(Gradle)」のメモ
背景
- Androidアプリ作ってみたい!
- 素晴らしき参考ページに沿って、 Androidの初級者になろうと思って始めました。 人気な勉強会なので、実際に足を運べてません。笑 ※ 「1. まえがき」あたりのメモになります。
開発環境でAndroidアプリプロジェクトの構成が違う。
Android StudioとEclipseでAndroidアプリプロジェクトの構成が違うっぽい。
- Android Studioプロジェクトの構成
.idea ディレクトリ
- プロジェクトの設定ファイルが格納されています。
app ディレクトリ ( C:\android_sandbox\workspace\MyApplication\app )
gradle Scripts
-
- srcディレクトリ
- genディレクトリ
- assetsディレクトリ
- binディレクトリ
- libsディレクトリ
- resディレクトリ
- AndroidManifest.xml
- proguard-project.txt
++ 素晴らしき参考ページ` http://mixi-inc.github.io/AndroidTraining/introductions/1.05.how-to-build-for-gradle.html
gradle.batを実行してみる
gradle.batの場所(windows)
Android Studioのインストールフォルダから、 gradleフォルダと階層を掘り下げていくと、 見つけることができると思われる。
C:\android_sandbox\AndroidStudio\gradle\gradle-2.2.1\bin\gradle.bat
署名済みアプリの作成する
※署名は、AndroidをAndroidマーケットで公開するときに必要らしい。
Androidアプリに署名するには、keystoreファイルを作成するとできる。 JDKのパスが通しておくと、keytoolコマンドが実行できる。
keytool -genkey -v -keystore [ファイル名] -alias [証明書の名称] -validity [有効日数]
僕は、C:\Users\main で keytoolコマンドを実行したので、 "C:\Users\main\hoge.keystore"にできてました。
- Android Studio で アプリに署名をするには * ツールバーの [ Build > Generate Signed APK ] から生成する。 ※ keytoolコマンドを実行してもできるし、 ※ Android Studioからでも、keystoreファイルは作成できそうだ。
以下のエラーがでた。
Generate signed APK: Errors while building apk, see messages tool window for list of errors.
んで、メッセージを見ると、Gradle Buildで失敗してた。 keystoreファイルのkeyを読むのに失敗してるらしい。
エラー :Execution failed for task ':app:packageRelease'. Failed to read key from keystore
検索してもでてこなかったから、 たぶん簡単なエラーなんだろう。 解決できないから、アプリに署名するのはあきらめることにする。 と、諦める前に、Android Studioからkeystoreファイルを作成したら、できた。
AndroidのapkファイルはZIP形式で圧縮されたファイルです。 ということらしいので、作成したapkファイルを7-zipで解凍する。
7-zipで解凍すれば、AndroidManifest.xmlの中身が文字化けしてる。 手順的に、はまった。笑
素直にapktoolを使って、解凍をすることにしました。 tarとbz2だったので、7zipで2回ずつ解凍しました。 https://code.google.com/p/android-apktool/downloads/detail?name=apktool1.5.2.tar.bz2&can=2&q=
うまく行かなすぎて、吹いた。
Exception in thread "main" brut.androlib.AndrolibException: Could not decode ars c file
https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.0.0rc3.jar
apktool_2.0.0rc3.jar を apktool.jar にリネームしました。 apktoolフォルダを作成し、以下の3つを入れる。
- apktool.bat
- aapt.exe
- apktool.jar
C:\android_sandbox\AndroidSDK\tools以下に置く。
解凍したいapkファイルも、apktoolフォルダに配置する。
apktool d app-release.apk
apktoolの使い方は、コマンドプロンプト上で、apktoolのみを実行するか、 apktoolのwikiを参照してください。 https://code.google.com/p/android-apktool/wiki/ApktoolOptions
解凍できた! apk ファイルの中にあるファイル・ディレクトリの役割ってどこで知れるの?
終わり。
当方の環境
参考ページ
mixi AndroidTraing http://mixi-inc.github.io/AndroidTraining/
AndroidMarketに公開するためにアプリに署名を行う http://techbooster.org/android/environment/1445/
AndroidStudio で APK の署名の設定を gradle.properties に記述する http://wada811.blogspot.com/2014/10/avoid-exposing-signing-config-using-gradle-properties.html
Android Studioで APK ファイルを作成する http://androidstudio.hatenablog.com/entry/2014/07/26/154043
apktoolでハマった — 2014/12/31 http://android-blog.smartphone-app.net/archives/267