1. 在《Kivy的编译环境的搭建以及编译和运行》一文中,我们通过以下命令生成apk文件:
../../build/hostpython/Python-2.7.2/hostpython build.py --package org.test.touchtracer --name touchtracer --version 1.0 --dir ../../build/kivy/kivy-stable/examples/demo/touchtracer debug
2. 该命令调用了dist/build目录下的build.py脚本
3. 我们先来分析一下上面的命令行:
--package org.test.touchtracer 包名称
--name touchtracer 项目名称
--version 1.0 版本号
--dir ../../build/kivy/kivy-stable/examples/demo/touchtracer 要打包的Python代码目录
debug 编译成debug版本
4. 实际上,build.py还有更多的参数
5. 下面来分析一下这个脚本,代码量不多,400多行
6. 首先是解析命令行参数
7. 然后读取blacklist.txt,用于过滤不需要的文件
8. 接下来就是调用make_package生成apk
9. 接下来看下make_package做了什么
10. 调用render函数从dist/default/templates下相应的模板生成如下文件:
AndroidManifest.xml
src/org/renpy/android/Configuration.java
build.xml
res/values/strings.xml
11. 调用android更新工程到最新版本
12. 调用生成public.mp3
13. 调用make_tar生成private.mp3
14. 以上两个过程都会根据blacklist来过滤掉不需要的文件
15. 最后,调用ant生成最终的apk
16. 好,到这里,整个代码就分析完了,整个过程还算是比较简单的,这下心里的疑问又少了很多
(完)