2.3.1 Launcher编译与修改

来源:互联网 发布:mac双系统怎么切换 编辑:程序博客网 时间:2024/06/16 08:02

首先准备系统源码,并且编译。前面讲过源码的编译,这里就不再细说。不明白的孩子猛击这里http://blog.csdn.net/nanlus/article/details/7868867


1.Launcher2项目导入eclipse中,这时候会有很多错误,先别急看下面:

2.添加Launcher2使用的包文件。

因为有很多东西都是隐藏的,所以在这里我们不得不用到系统编译之后的jar包,在这里找到生成包的路径为:out/target/common/obj/JAVA_LIBRARIES

1)framework_intermediates/classes.jar :android的框架类
2)android-common_intermediates/classes.jar :
com.android.common.Search这个类的引用
3)core_intermediates/classes.jar :
dalvik.system.VMRuntime这个类引用
以上都需要添加,方法:BuildPath->Configure Build Path...->Libraries->Add Library->UserLibrary->User Libraries...->New...(自己取名字然后一个个的加进去)  
例如:android_framework,android_common,android_core.然后把对应的jar包添加进去

(注意:这里涉及包的顺序问题,所以,首先要移除android自身的包,然后添加这仨,最后把android自身的包添加进来)


3.
修改Launcher2包名称为Launcher3改掉包名称,用到的地方必须全部改掉。com.android.launcher3

这里注意了:在AndroidManifest里面有这么一段,可能有人不理解,

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.launcher" 
    android:sharedUserId="@string/sharedUserId"
>
    <original-package android:name="com.android.launcher3" /> ... ...

大致意思是:我在的包original-package android:name="com.android.launcher3在项目中用 package="com.android.launcher" 这个代替。也就是说,在项目中要用到com.android.launcher3的地方com.android.launcher都被它替代了。

AndroidManifest.xml文件里面,还有这么一句话删除之android:sharedUserId="android.uid.shared"

4.这样在模拟器上就能运行,但是,这里还有一个错误,SearchWidgetProvider does not have android.permission.BIND_APPWIDGET.意思就是没权限,怎么办呢,有两种方法:一是和rom一样的签名二是做成系统应用,这个是在第一次绑定默认appid的时候,出现的问题。之后没出现问题了。


具体要修改的地方,根据自己的需求来,哈哈


不知道大家发现没有,在模拟器上menu键也能解锁哟,哈哈

原创粉丝点击