20100318

来源:互联网 发布:淘宝男装品牌 编辑:程序博客网 时间:2024/06/13 15:44

一:编译源码:

现device根目录下envsetup.sh脚本中,已经有了专门的2个命令来生成单独的module

- m:       Makes from the top of the tree.
- mm:      Builds all of the modules in the current directory.
- mmm:     Builds all of the modules in the supplied directories.

先执行. envsetup和tapas,然后
所以可以到自己想编译的目录,直接执行mm即可,
或者使用mmm dircetroy指定目录.

1:想要编译源码,则那个包中必须有.mk文件,如Contacts中的Android.mk,可以自己模拟其他的mk文件重新写一个。另外,想要使用  . build/envsetup.sh 这个命令行,则源码所在的目录下必须有build这个工具。如我所在的roewe_android下有个build文件夹。(注 “."和“build“中间有个空格)。在终端上执行完build/envsetup.sh后再执行 mmm packages/apps/Contacts 。但最好将一个预准备好的classpath文件修改下 。里面限制了一些可以执行的文件的path。在当前目录下修改下classpath的名字:mv classpath .classpath。之后再用Vim编辑:Vim .classpath 。在.classpath中加入 <classpathentry kind="src" path="packages/apps/Contacts/src"/>这行应该就可以了。
2: 执行ls -al命令后应该可以看见Contacts。
3:执行mmm packages/apps/Contacts。可能会看到如下信息:
target Java: ContactsTests (out/target/common/obj/APPS/ContactsTests_intermediates/classes)
Copying out/target/common/obj/APPS/ContactsTests_intermediates/classes-full-debug.jar
Copying: out/target/common/obj/APPS/ContactsTests_intermediates/classes.jar
target Dex: ContactsTests
target Package: ContactsTests (out/target/product/generic/obj/APPS/ContactsTests_intermediates/package.apk)
Install: out/target/product/generic/data/app/ContactsTests.apk
Install: out/target/product/generic/system/app/Contacts.apk
make:离开目录“/work/roewe_android”
4:这里生成了Contacts.apk文件,接下来可以执行:adb install -r out/target/product/generic/system/app/Contacts.apk(注,-r表示强制安装)以安装这个Contacts.apk文件。

5:RecentCallsListActivity.java文件的运行流程:onCreate —— onResume ——bindView(从View中获取数据——填充数据到View)—— enqueueRequest——

在onCreate中加载ListAdapter(视图),创建QueryHandler实例。
在onResume中startQuery()。并设置mAdapter.setLoading(true)。查询完后自动调用onQueryComplete方法。并设置callsAdapter.setLoading(false);因为查询完后不需要再加载这个Adapter。

原创粉丝点击