编译改造过的Android源码Lancher替换panda开发板的Launcher
由于公司项目需要,这两三个月一直在改造lancher。现在基本改造完毕,需要装到真机开发板上调试。由于烧写源码到真机上涉及到驱动问题,并且我的上司主管调试的系统和我的不是一个版本,他那个版本驱动已经调试完毕,所以不希望重新烧写整套源码,而是只替换一个Lancher。于是我就按照这个需求开始操作了。经过两天的努力,终于搞定了。回想起来,其实也不算难,但是寻找以及探索的过程还是挺累的。现在把整个过程总结在此,希望能对看到的人有所帮助。
这个操作的前提是:机器要有root权限!!!!!!
1.编译适合在panda开发板上适用的源码。
相信来看这篇文章的程序猿应该都熟悉编译源码流程。这个流程也一样,只是有项参数不一样而已。在终端输入:
1)$:source build/envsetup.sh ----初始化编译环境
$:lunch full_panda-eng ----配置适合真机上运行参数(模拟器上的是 lunch full-eng
$:make -----开始编译
2)编译完后,会看到跟一般编译不一样的地方:在product目录下多了一个名为panda的目录。我们所需要的东西都 在这里边了。进入panda/system/app/我们就可以看到很多系统的应用程序apk。相信你也看到了我们所需要 的Lancher。
2.将Lancher.apk push到真机上的/system/app目录中。
$:adb remount
$:adb push xxx/xxx/xxx/Launcher2.apk /system/app/
这样你会看到屏幕黑屏了,然后再几秒又运行起来了。这个就是你刚push进去的新Lancher。
说说我碰到的问题:
1.Adroid.database.sqlite.SQLiteException: Can't downgrade database from version 12 to 9.查了一下,说是数据库更新后使用时应该先获取最新版本的数据库。大家可以看这个链接:http://blog.csdn.net/itceojingying/article/details/6347208
我根据出错的信息找到的解决方法是:进入lancher工程src目录,找到LancherProvider.java中DATABASE_VERSION=12,
把它改为DATABASE_VERSION=15(应该是>=12就行)即可。
2.Requires development platform AOSP but this is a release platform.这个困扰了我挺久的。最后终于找到答案。具体看下面这个网址吧,相信比我说的更明白。解决方法就是:在AndroidManifest.xml的application标签前加上下面两个标答
<uses-sdk android:minSdkVersion="AOSP" android:targetSdkVersion="AOSP"> </uses-sdk>
,之后重新编译,按照上面的步骤来就行。
3.其他还有一些是找不到方法,找不到类的错误,只要你找到相应的代码把它注释掉就行。应该没什么大问题。
嗯,记录完毕。以后要经常写笔记了。一天进步一点。