第一个idea android工程初探

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花了心思让开发者爽。那好吧!爷决定继续宠信你!

 

无觅相关文章插件,快速提升流量

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">