android studio调试开发系统应用

原创 2016年06月01日 08:52:24

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

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

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

比如:

@Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {

    // TODO Auto-generated method stub
    switch (keyCode) {
      case KeyEvent.KEYCODE_XXXX_DTV:
      case KeyEvent.KEYCODE_XXXX_ATV:
      case KeyEvent.KEYCODE_XXXX_HDMI1:
      case KeyEvent.KEYCODE_XXXX_HDMI2:
      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)

 

task pushDownJdkDependency { 
    def imlFile = file("launcher3.iml")
    try {
        def parsedXml = (new XmlParser()).parse(imlFile)
        def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' }

        parsedXml.component[1].remove(jdkNode)
        new Node(parsedXml.component[1], 'orderEntry', ['type': 'jdk', 'jdkName': "Android API 19 Platform", 'jdkType': 'Android SDK'])
        def writer = new StringWriter()
        new XmlNodePrinter(new PrintWriter(writer)).print(parsedXml)
        imlFile.text = writer.toString()
        } catch (FileNotFoundException e) {
            // nop, iml not found
        }

}
这里的Luancher3.xml是和你工程同名的一个配置文件,用于在链接时查找相应的库,默认SDK库在最头上,他是亲儿子。。。有了亲儿子,当然不会认你这个干儿子了。

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

<orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" exported="" name="framework" level="project" />
    <orderEntry type="library" exported="" name="tvapi" level="project" />
    <orderEntry type="library" exported="" name="support-annotations-23.2.0" level="project" />
    <orderEntry type="library" exported="" name="SmartPlayer" level="project" />
    <orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />
现在变成亲儿子了,讨厌的红色消失啦。。。哈哈。。。

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

android {
... 
   allprojects {

        gradle.projectsEvaluated {
            preBuild.dependsOn(pushDownJdkDependency)
            tasks.withType(JavaCompile) {
                options.compilerArgs.add('-Xbootclasspath/p:libs/framework.jar')
            }
        }
    }
}

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


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


如何实现在 Android Studio 上开发系统应用(自带系统签名)

如何实现在 Android Studio 上开发系统应用(自带系统签名)                 基于Android 系统应用包名和路径的局限性,很多同僚不得不暂时放弃 Android ...
  • MLQ8087
  • MLQ8087
  • 2016年12月06日 11:02
  • 4595

Android Studio 编写系统APP

现状 现在Android Studio正在变得越来越流行,几乎所有的APP开发者都开始使用Android Studio, 那我们如何才能够在AS里调用自己的framework.jar而不是SDK里的...
  • DAo_1990
  • DAo_1990
  • 2017年11月17日 17:39
  • 584

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

原文链接:http://blog.csdn.net/helldevil/article/details/51547454 之前机器属于阿富汗就别,所以只能在苦逼的在eclipse里面开发...
  • sunshine199221
  • sunshine199221
  • 2016年12月05日 12:16
  • 1056

使用android studio开发系统级app的gradle配置

as功能强大,体贴周到,让开发者只集中于项目开发上,对于环境、编译等等事项尽量的简单。 不过万事都有利弊,简单的背后就是不灵活,导致我们开发系统级APP时非常蛋疼,因为要用到一些hide类型的api,...
  • xuehaiwuya1212
  • xuehaiwuya1212
  • 2017年05月11日 10:05
  • 808

使用AndroidStudio进行系统应用开发

在我们进行Android系统app开发时,我们常常会苦恼于: - 不能在AndroidStudio中调用系统定制API - 不能直接通过AndroidStudio直接允许app那么要解决这两个问题...
  • zxlworking1
  • zxlworking1
  • 2017年10月14日 22:03
  • 121

Android Studio从4.4升级所有版本SDK

首先我们安装Android Studio软件,我这里是1.5版本的。安装好软件,打开软件界面,点下File菜单-settings-APPearance&Behavior-System Settings...
  • u013519290
  • u013519290
  • 2015年12月17日 00:04
  • 2645

Intellij Idea&Android Studio中iml文件、modules.xml文件作用

最早使用Android Studio的时候,对这两个文件的使用并不熟悉,因为Studio会帮你管理一切。但对于Intellij Idea来说,一切变得不同,很多对项目的管理都回到了基本层级。下面介绍一...
  • zhangbuzhangbu
  • zhangbuzhangbu
  • 2016年08月18日 08:17
  • 16857

Android Stdio 引入自定义framework.jar 自定义framework-res.apk 中 attr

如果开发一些依赖framework中隐藏方法的应用的话, 如果一直用反射比较繁琐, 所以如果导入framework.jar, 编译的时候依赖framework, 打包的时候不打包, 这样开发就简单了许...
  • ouo555
  • ouo555
  • 2015年05月30日 14:07
  • 7506

Android源码开发----如何编写Android系统应用

上一篇博客已经完成了Android源码的编译工作,我们来看下源码目录(我的源码为三方移植包,所以目录会多了一点) 其中,package/app目录下放着我们的系统应用,也就是我们手机中出厂自带的,不能...
  • yinhaide
  • yinhaide
  • 2015年01月16日 22:27
  • 4175

Android系统应用开发(一)原稿

z杂项 1,SDK路径:C:\Program Files (x86)\Android\android-sdk 2,exit 退出shell环境 3,make后system.img位置  :Z:\mya...
  • sky_pjf
  • sky_pjf
  • 2016年09月10日 17:18
  • 720
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android studio调试开发系统应用
举报原因:
原因补充:

(最多只允许输入30个字)