尽管常常和android打交道。但事实上我对android不是非常了解。
这里记录一下ant编译androidproject的过程,然后顺便记录一下android的一些基本概念。不求渡人,但求渡己。这里仅仅是记录一下自己实践的过程,參考博文连接点击这里。
流程例如以下:
1>生成R.java文件。
(注:此文件为android资源的索引文件)
2>将java代码编译成class文件。
3>将jar包和class文件生成 class.dex 文件。
(注:class是java的二进制文件。 jar包是打包的class文件。能够直接用jar命令直接运行。dex是android上得可运行文件格式,注意apk仅仅是压缩包。安装后自己主动解压,最后运行的是dex 文件)
4>将assets文件和res文件打包压缩。(注:做cocos2d-x的应该对这个都比較熟悉,游戏用到的资源最后都通过build脚本打到assets文件中。这里的资源不会在R文件中检索到,res能够通过R文件检索到。
详细原因不清楚,毕竟都能够用java代码读取)。
5>将dex文件和资源文件打包成apk。
6>对apk进行签名。(mac下个人签名文件存放路径为:~/.android/debug.keystore)
编译须要用到一个叫build.xml,假设你的工程文件夹以下没有此文件,能够通过android update project --path .来生成。(注:${}取出{}内的路径)(注:aapt为Android Asset Packaging Tool,能够查看,创建,更新ZIP格式的文档附件。也能够将资源文件编译成二进制)(注:apkbuilder在android3.0后被废弃)(注:若mac终端执行ant出现乱码现象请到终端,设置。高级。字符编码处设置)。
直接执行ant debug可能会出现这种一个错误提示:sdk.dir is missing.Make sure generate local.properties using ... 。原因不清楚,明明已经生成local.properties,却提示找不到,可是能够手动传入,传入方式为 -Dsdk.dir={sdk路径}。这样做可能还会有问题。错误提示为:build.xml:601:The following error occurred while executing this line。
你须要做的是关掉eclipse,执行ant clean, 然后又一次执行 ant debug