主要構成一覧
状態:-
閲覧数:1,039
投稿日:2014-01-03
更新日:2014-03-17
<HelloWorld>
├ /src
│ └ /e1blue.androidstyle.hello
│ └ HelloAndroid.java メインソース … このクラスに独自のコードを追加
│
├ /gen
│ └ /e1blue.androidstyle.hello
│ └ R.java リソースID定義クラス … リソースとは、「プロジェクトで利用する画像ファイル」「アイコンファイル」「画面のレイアウト情報」「画面に表示する文字列」の意味。これらのリソースを識別するためのIDを、Rクラスで定義しているが、このファイルはEclipseが自動的に更新を行なうので、手動で編集する必要はない
│
├ /assets
│
├ /bin
│
├ /libs
││
├ /res
│ └ /drawable-hdpi 高解像度用画像(240dpi)フォルダ
│ └ /drawable-ldpi 低解像度用画像(120dpi)フォルダ
│ └ /drawable-mdpi 中解像度用画像(160dpi)フォルダ
│ └ /layout 画面レイアウトフォルダ
│ └ main.xml 画面レイアウト定義ファイル
│ └ /values 文字列フォルダ
│ └ string.xml 文字列定義ファイル
│
├ /Android 2.2 Android SDK クラス
├ AndroidManifest.xml マニュフェストファイル … パッケージ名やコンポーネント名などのアプリケーションに関する情報が記述されたファイル。Androidプラットフォームが参照
└ proguard-project.txt
├ /src
│ └ /e1blue.androidstyle.hello
│ └ HelloAndroid.java メインソース … このクラスに独自のコードを追加
│
├ /gen
│ └ /e1blue.androidstyle.hello
│ └ R.java リソースID定義クラス … リソースとは、「プロジェクトで利用する画像ファイル」「アイコンファイル」「画面のレイアウト情報」「画面に表示する文字列」の意味。これらのリソースを識別するためのIDを、Rクラスで定義しているが、このファイルはEclipseが自動的に更新を行なうので、手動で編集する必要はない
│
├ /assets
│
├ /bin
│
├ /libs
││
├ /res
│ └ /drawable-hdpi 高解像度用画像(240dpi)フォルダ
│ └ /drawable-ldpi 低解像度用画像(120dpi)フォルダ
│ └ /drawable-mdpi 中解像度用画像(160dpi)フォルダ
│ └ /layout 画面レイアウトフォルダ
│ └ main.xml 画面レイアウト定義ファイル
│ └ /values 文字列フォルダ
│ └ string.xml 文字列定義ファイル
│
├ /Android 2.2 Android SDK クラス
├ AndroidManifest.xml マニュフェストファイル … パッケージ名やコンポーネント名などのアプリケーションに関する情報が記述されたファイル。Androidプラットフォームが参照
└ proguard-project.txt
Androidプロジェクト構成パーツ詳細(Eclipse)
/src
ソースフォルダ
・Javaで書かれたソースコードが格納されている
/gen
自動生成されるフォルダ
・Androidフレームワークが自動で生成するコードが格納されている
・自動生成するものなので、genディレクトリはリポジトリへチェックインしないようにする
Eclipseが管理
・この中のコードに直接手を入れることはない
/assets
・アプリで読み書きが可能なファイルの格納場所
・簡単なhtmlを保存しておき、WebViewで開く等の使い方が可能
/bin
・コンパイルして生成される、jarやapkなどの各種ファイルが格納される
・このディレクトリも、リポジトリへはチェックインしないようにする
/libs
・外部ライブラリのjarファイルを格納
・ここに格納したjarへのパスは、フレームワークが自動で通してくれる
/res
リソースフォルダ
・レイアウトファイルや、定型文、画像などの各種リソース本体が格納されている
・このフォルダ以下は、さらにリソースの種類ごとにフォルダが分かれている
・格納するリソースごとに命名規則が決められている
・利用する端末のスペックに応じてのディレクトリの分割も可能
AndroidManifest.xml
・アプリに関する様々な宣言をする場所
・アプリが利用する端末の機能(カメラや外部ストレージなど)の宣言や、パーミッションの宣言もここで実施
proguard-project.txt
・ProGuardという、コードの難読化ツールの設定ファイル
ProGuardとは?
・ADT r8 から標準で Android SDK に組み込まれた難読化ツール
・無償で利用可能
・圧縮、最適化、難読化、事前検証の4つの機能を保持
難読化する理由は?
・Javaで書かれてたAndroidアプリでも、逆コンパイルすると簡単にソースコードが見えてしまう
・リバースエンジニアリング(ソフトウエア解析)されると重要なアルゴリズムやパスワードが盗用される恐れがある
・そのため難読化してリバースエンジニアリングを難しくする対策を施す
ProGuard は、未使用のコードを除き意味的に分かりづらくなるようにクラス、フィールド、メソッドの名前を変えることによりコードを縮め、最適化し、難読化するツールです。結果として .apk ファイルはより小さくなり、リバースエンジニアリングもより困難となります
ProGuard は Android のビルドシステムに統合されているので、手動でそれを呼び出す必要はありません。ProGuard が実行されるのはアプリケーションをリリースモードでビルドするときのみなので、アプリケーションをデバッグモードでビルドしているときにコードの難読化に対処する必要はありません。ProGuard を実行させるのは完全にオプションとなっていますが、強く推奨します