(转载备忘)android studio调试开发系统应用(导入修改后的的framework.jar包)

原文链接:http://blog.csdn.net/helldevil/article/details/51547454


之前机器属于阿富汗就别,所以只能在苦逼的在eclipse里面开发应用。后来鸟枪换炮,系统硬件升级了,就装了个Android stuido来开发应用,好处吗,自不用说,

大家百度下,这里就不做广告了。

说下如果在android studio下开发系统应用,这里的系统应用是指需要用到系统隐藏API或者自定义API的这种应用,普通的SDK是无法提供的。

比如:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. @Override  
  2.   public boolean onKeyDown(int keyCode, KeyEvent event) {  
  3.   
  4.     // TODO Auto-generated method stub  
  5.     switch (keyCode) {  
  6.       case KeyEvent.KEYCODE_XXXX_DTV:  
  7.       case KeyEvent.KEYCODE_XXXX_ATV:  
  8.       case KeyEvent.KEYCODE_XXXX_HDMI1:  
  9.       case KeyEvent.KEYCODE_XXXX_HDMI2:  
  10.       case KeyEvent.KEYCODE_XXXX_HDMI3:  

这种自定义的按键,你该咋办。。。代码一上去,直接大大的红色,囧。

也尝试了百度解决方案,说实在的百度就是个垃圾,啥也搜不到,搜到的也是没有经过验证的回答。全是无效答案,所以这里给大家提供自己亲测完美运行的解决方案。

废话不多说,直接说解决:

1 首先你得有源码,和编译的环境,如果没有,下面就不要看了。。。

   有了源码,请编译下,编译完成后,一般会生成out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar

   这个是你的framework的编译的链接文件,一定要是这个文件,/system/framework/下面的那个木有用。

2 有了这个神器,你就可以导入到android studio。怎么导入?

  额。。。FILE->Project Structure->Dependencies,记住点+号,一定要选择Provide模式,Compile模式会让你蛋疼的,这个是将库编译到源码中。。。那是无尽的等待啊。

3 导完库后,就是如何去掉那该死的错误提(找不到XXX定义)

  这里我求助了Stackoverflow的大神,他们给出了完美解决方案。

Build.gradle里面加入如下脚本:(注意要用自己的android api来替换,我的是4.4.2所以用Android API 19 platform)

 

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. task pushDownJdkDependency {   
  2.     def imlFile = file("launcher3.iml")  
  3.     try {  
  4.         def parsedXml = (new XmlParser()).parse(imlFile)  
  5.         def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' }  
  6.   
  7.         parsedXml.component[1].remove(jdkNode)  
  8.         new Node(parsedXml.component[1], 'orderEntry', ['type': 'jdk', 'jdkName': "Android API 19 Platform", 'jdkType': 'Android SDK'])  
  9.         def writer = new StringWriter()  
  10.         new XmlNodePrinter(new PrintWriter(writer)).print(parsedXml)  
  11.         imlFile.text = writer.toString()  
  12.         } catch (FileNotFoundException e) {  
  13.             // nop, iml not found  
  14.         }  
  15.   
  16. }  
这里的Luancher3.xml是和你工程同名的一个配置文件,用于在链接时查找相应的库,默认SDK库在最头上,他是亲儿子。。。有了亲儿子,当然不会认你这个干儿子了。

所以得篡权,这个脚本就是篡权用的,把自己提升到第一位编程亲儿子

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <orderEntry type="sourceFolder" forTests="false" />  
  2.     <orderEntry type="library" exported="" name="framework" level="project" />  
  3.     <orderEntry type="library" exported="" name="tvapi" level="project" />  
  4.     <orderEntry type="library" exported="" name="support-annotations-23.2.0" level="project" />  
  5.     <orderEntry type="library" exported="" name="SmartPlayer" level="project" />  
  6.     <orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />  
现在变成亲儿子了,讨厌的红色消失啦。。。哈哈。。。

下面加入的是可以让其运行的脚本。这个要放在android的闭包里面。

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. android {  
  2. ...   
  3.    allprojects {  
  4.   
  5.         gradle.projectsEvaluated {  
  6.             preBuild.dependsOn(pushDownJdkDependency)  
  7.             tasks.withType(JavaCompile) {  
  8.                 options.compilerArgs.add('-Xbootclasspath/p:libs/framework.jar')  
  9.             }  
  10.         }  
  11.     }  
  12. }  

以上就可以完成在android平台上开发了系统应用了。谢谢大家。


http://download.csdn.NET/detail/helldevil/9642150 这里是配置文件


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值