1、需要android源码,并在源码下将packages/apps/Browser编译一遍(mm -B),我用的android 5.1.1的源码。测试手机系统是android 5.0
2、将packages/apps/下Browser整个拷出来,这个是Browser的代码。打开Eclipse,新建工程,选择Android Project from Exiting Code,工程建好了有很多红叉叉,不管。
3、右键工程,选择Properties->Java Build Path->Libraries->Add Library->User Library->next->User Libraries->new然后在弹框中填上名字(如browser)并打上勾。
这里建了一个System library, name是browser,然后在Java Build Path中将browser的顺序置顶
4、为刚才的browser library添加3个jar,分别是
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar;
out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/classes.jar;
out/target/common/obj/APPS/Browser_intermediates/classes.jar;
5、此时红叉叉没有了,可以编译通过,但是无法安装,在AndroidManifest.xml修改包名为com.carl.browser,再次编译通过且安装成功,BUT打开直接崩溃。
看log,,,java.lang.NoClassDefFoundError: Failed resolution of: Lcom/android/common/content/SyncStateContentProviderHelper;
发现找不到这个类。。。。
解决办法:在src下新建包名com.android.common.content,然后从android源码frameworks/ex/common/java/com/android/common/content下将SyncStateContentProviderHelper.java拷到刚才新建的包名下。
如果还是打开程序崩溃,导入android-support-v4.jar到工程libs目录下,再次编译安装打开成功!!!!