首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

2.3.1 Launcher编译与批改

2012-09-28 
2.3.1 Launcher编译与修改首先准备系统源码,并且编译。前面有一篇博文主要讲解了源码的编译,这里就不再细说

2.3.1 Launcher编译与修改

首先准备系统源码,并且编译。前面有一篇博文主要讲解了源码的编译,这里就不再细说。


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键也能解锁哟,不知道大家发现没有,哈哈

热点排行