Intellij Idea的第一个android工程创建好了,helloworld也出来了!不着急写点啥,咱也没看过专门的书,就先琢磨下andriod工程的构成。Update:本文档所说的内容,找到了总的官方文档。
其中几个文件说明下(idea工程相关的就不说了):
- ./AndroidManifest.xml
Android的清单文件,详见官方文档。每个应用必须有,为android系统提供有关应用的必要信息,如:java包名、组件描述、权限、测试信息、SDK Api最低要求、必须的库文件等。 - ./build.xml
- ./local.properties
- ./build.properties
- ./default.properties
Idea用来build android module的4个ant配置文件,可以先不管。 - ./proguard.cfg
应用的保卫者,详见官方文档。用来压缩、优化、混淆、清理代码的,这个工具好,防止逆向反编译,不知道Google有没有留后门哇,嘿嘿怀疑下,等以后熟悉点类再判断。 - ./res/drawable-hdpi/icon.png
- ./res/drawable-ldpi/icon.png
- ./res/drawable-mdpi/icon.png
图标资源文件,详见:官方文档。高分辨率、中分辨率、低分辨率三种状态的图标显示。 - ./res/layout/main.xml
UI组件的布局定义,详见:官方文档。 - ./res/values/strings.xml
String资源定义,详见:官方文档。为了复用、国际化等等。 - ./gen/com/jotcmd/R.java
资源访问静态类,详见:官方文档。gen目录表示自动生成。里面的int值是可以用来定位到目标资源的资源ID。 - ./src/com/jotcmd/MyFirstActivity.java
终于是主程序了,这个就是java,就不说了。里面可以把R.java指定的、res里的资源、布局全部绕开不用,但是,何必呢?你不觉得R.java是个好主意吗?反正我是觉得不错。
最后生成的apk文件内部列表是:
[jot@myhost jot_roid]$ unzip -l jot_roid.apk Archive: jot_roid.apk Length Date Time Name --------- ---------- ----- ---- 692 2011-08-10 21:50 res/layout/main.xml 1300 2011-08-10 21:50 AndroidManifest.xml 1220 2011-08-10 21:44 resources.arsc 3966 2011-08-10 21:44 res/drawable-hdpi/icon.png 1537 2011-08-10 21:44 res/drawable-ldpi/icon.png 2200 2011-08-10 21:44 res/drawable-mdpi/icon.png 2088 2011-08-10 21:50 classes.dex 564 2011-08-10 21:50 META-INF/MANIFEST.MF 617 2011-08-10 21:50 META-INF/CERT.SF 776 2011-08-10 21:50 META-INF/CERT.RSA --------- ------- 14960 10 files
明显多出的2个文件:
- classes.dex:如果android的语言是java,那么dex就是jar包了,纠结的Google啊。
- resources.arsc:strings.xml哪里去了?就在这个文件里,它是可被编译的资源文件包。不可编译的依然在外面。参见:官方文档。TODO:main.xml为什么在外面,有待研究。
暂时只了解类这么些,但是从R.java、resources.arsc、proguard.cfg这些文件,就可以知道,android花了心思让开发者爽。那好吧!爷决定继续宠信你!
