Launcher是android系统中的一个自带的应用程序,它完全是一个上层应用,既然是应用,就可以在eclipse中导入工程,并编译运行。
Launcher的源码可以在android源码的packages/apps/Launcher2目录里面。当然,也可以在google的官方网站中直接下载。
要能正确的编译运行launcher,仅仅一个launcher2工程是不够的。因为在launcher中使用了大量的android没有公开的API,所以我们需要android源码中下面几个库的支持:
1. framework_intermediates/classes.jar :这个主要是android的框架类
2. android-common_intermediates/classes.jar :这个包含com.android.common.Search这个类
3. core_intermediates/classes.jar :这个包包含dalvik.system.VMRuntime这个类
这些类在android源码编译成功后的out/target/common/obj/JAVA_LIBRARIES目录中,把它们拷贝过来即可。
通过eclipse导入launcher工程(File/Import /General(Existing Projects into Workspaces) /Browse)。导入工程之后发现工程报很多的错误,这是因为没有添加上述的三个库造成的。这个可以通过配置工程的build path 来导入:
右键工程名称然后选择Build Path->Configure Build Path...->Libraries->Add Library->User Library->User Libraries...->New... 输入任意名字(注意,这里一定要先中 System Library),确认后再选Add JARs 选择三个classes.jar之间再确认。重复三次将三个classes.jar都导入进来。
将3个包加入进来后,然后还需要将它们放到android4.0.3这个包的前面,可以在Build Path配置中选择Order and Export (注:选中3个新目录,然后UP就行了)
这时候就会发现Launcher2工程以及没有错误了,也可以编译了。
为了避免与系统默认的包名冲突,所以需要进行修改:
1. 在src/com.android.launcher上点击右键,"Refactor" -> "Rename...",名字可以自定义,选项选择(全选上)
2. 点击"Preview>",进行预览(途中弹出警告的话,不用管,继续"Countinue"),这里要去掉一些不必要的修改,否则就会改乱了
3. 新出来的界面可能会有Android Package Rename根节点,去掉它的子节点AndroidManiFest.xml前的勾选。然后OK,可能会弹出错误,直接Abort。
4. 在gen/com.android.launcher上点击右键,"Refactor" -> "Rename...",名字可以自定义,选项选择(全选上)
5. 同上,这里要取消两个根节点:Manifest.java和 R.java前的勾选。同样OK下去。
做完这些,我们就可以直接在eclipse中编译,运行launcher了。