本人要定制自己公司的Android系统,现需要修改系统的一些App,如SystemUI和Launcher2等,但不知该如何调试。
目前的编译方法就是mm,但mm出来的apk要如何单步调试呢?有没有办法把要修改的项目导入Eclipse里面,直接由Eclipse来生成Apk,跳过mm这一步。最后通过Android模拟器来实现单步调试。
还有,像SystemUI这样的App是否需要依赖底层Native代码的,因为我发现我们的Apk(如SystemUI)直接放进模拟器替代原来的Apk和Odex不能正常运行。我们系统的平台是mips的,但应用应该只涉及到Java层,不应该跟硬件有关系的吧。

解决方案 »

  1.   

    这种系统级别的APK好像都要在android系统里编才行,这样和你编译出来的系统才在同一个平台。这好像牵涉到一个APK签名的问题,还有一个系统级别的进程间访问,shareUserId什么的记不清了,具体的你可以google一下android签名。你在ecclipse里编译的APK签名不对,放在system/apk下面运行不了,因为它访问不了系统级别的资源,所以就出错了。跟硬件没关系,只是一个系统签名的问题。
      

  2.   

    1. 就是说只要拿到Android的签名文件,再通过eclipse来导出签名APK就行了么。
    2. 还有,对于package/apps/ 下面的APK如Launcher2 能不能用普通的签名。
    3. 其实目前遇到最大的问题是eclipse编译的时候各种错,主要是不知道要包含哪些包进来
      

  3.   

    1. 就是说只要拿到Android的签名文件,再通过eclipse来导出签名APK就行了么。
    理论上可以这么说,但是这个签名是你在编译android bsp时产生的,至于怎么通过eclipse弄到APK里我还没研究过。可能比较费劲。
    2. 还有,对于package/apps/ 下面的APK如Launcher2 能不能用普通的签名。
    签名没啥普通和特殊的区别,编译时候根据系统产生的,你可以google查一下这方面资料,很多。
    3. 其实目前遇到最大的问题是eclipse编译的时候各种错,主要是不知道要包含哪些包进来 
    我没用过eclipse编译过这些系统APK,可能要设置一些东西吧,可以google一下。
      

  4.   

    我以前也修改过这些APK,个人感觉不需要用ECLIPSE,在ANDROID下面MM就可以了,单步调试的话你可以用LOGD("MYDEBUG", "XXXX")打信息出来,然后通过串口或者adb shell的logcat -s MYDEBUG查看,这些系统APK里的debug工作都做的很完善,只是没有界面那么直观,习惯了就好了。
      

  5.   

    我现在的解决方法也是用eclipse来开发,mmm来编译,调试的话就用eclipse的远程调试方法,算是顺利解决了开发环境的问题。