关于androidstuio导入系统源码的问题

最近公司需要做一些将系统源码导出来,然后加入一些功能,在导入androidstudio过程中遇到过一些问题,这里记录下,方便以后需要。

一般导入成功的都是系统比较相对独立的app,比如计算器、Schedule power on off等,网上查阅一些资料后,最终解决。

这里以Schedule power on off为例。

1、导出Schedule power on off源码,路径为/package/apps/

如图:

新建androidstudio项目,导入相关代码以及相关资源文件,rebuild一下,发现报错。

为了能在android studio里使用framework层隐藏的接口,需要自己编译下framework的源码,得到framework.jar和classes.jar。具体路径如下:
如果编译debug版本:
out/target/product/projectXX/system/framewor framework.jar
如果是user版本:
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar

这里新建一个ext_libs,将class.jar改为framework.jar

app.build使用:

allprojects {
    repositories {
        jcenter()
    }
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
//使用全路径
            options.compilerArgs.add('-Xbootclasspath/p:D://workspace/SchedulePowerOnOff-master/app/ext_libs/framework.jar')
        }
    }

}
android{
 repositories {
        flatDir {
            dirs 'libs'
        }
    }
//    u
......
}
provided files('ext_libs/framework.jar')

使用provided只是在编译时使用,不打包到apk中

build.gradle中

allprojects {
    repositories {
        maven {
//            url 'https://maven.google.com/'
            url 'https://dl.google.com/dl/android/maven2/'
            name 'Google'
        }
        jcenter()

    }
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs.add('-Xbootclasspath/p:D://workspace/SchedulePowerOnOff-master/app/ext_libs/framework.jar')
        }
    }
}

然后rebuild一下,会发现隐藏的方法还是会报错。这是因为没有优先使用ext_libs下的framework.jar

修改:app.iml

如图

将截图处移至最后面。便可解决。

build一下,发现隐藏方法导包成功。到此就结束了。

以上就是关于androidstuio导入系统源码的详细内容,更多关于androidstuio导入系统源码的资料请关注我们其它相关文章!

时间: 2021-06-09

AndroidStuio插件开发适用于jetbrains全家桶

文章目录 创建项目创建类获取文件解析文件展示解析内容写入文件 写了个类似Butter Knife的开发库,但是并没有与其配套的AndroidStudio插件,抽时间研究了以下IDEA的api文档,撸了一个对应的插件,源码在这里 之前写的一些小demo可以看看这篇文章 初步编写IDEA\AndroidStudio翻译插件 以及另外一个插件项目 https://github.com/huangyuanlove/VariableNameStyleTransfer 本项目代码参考 android-but

解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)

前言 今天我的 PyCharm 突然间就死掉了,双击图标,等半天没有反应,也没有抛出什么错误.打开任务管理器,发现双击时启动了一个PyCharm的进程,但是进程很快就死掉了,原因未知.重启电脑和卸载软件再重新安装都尝试了,依旧没有解决问题. 重置 winsock 该方法并没有解决我这次遇到的问题,只是看到有这个方法,做一个记录.下次出问题时可以尝试使用 步骤: 以管理员身份运行 cmd(可以在搜索栏输入 cmd 然后右键以管理员身份运行,也可以直接同时按下 win+R 键,输入 cmd ) 输入

IDEA2020.2.2激活与IntelliJ IDEA2020注册码及IntelliJ全家桶激活码的详细教程(有你足矣)

申明:本教程 IntelliJ IDEA 破解补丁.激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除不花钱 的方式 IDEA 2020.2 激活到 2089 年 注意: 本教程适用于 JetBrains 全系列产品 IDEA 2020.2 以下所有版本,请放心食用~ 文中有 IDEA 2020 所有版本下载 (包括历史版本 IDEA 2020.2) 二.下载最新的 IDEA 2020 版本安装包 可以选择从 IDEA 官网下载: https://www.jetbrains

使用docker搭建一套开发环境全家桶的详细教程

DNMP介绍 DNMP(Docker + Nginx + MySQL + PHP7/5 + Redis)是一款全功能的LNMP一键安装程序.支持的服务丰富.功能强大.使用简单.兼容多平台.是适用于多端的一款docker开发与生产环境的PHP环境全家桶. DNMP项目特点: 100%开源 100%遵循Docker标准 支持多版本PHP共存,可任意切换(PHP5.4.PHP5.6.PHP7.1.PHP7.2.PHP7.3) 支持绑定任意多个域名 支持HTTPS和HTTP/2 PHP源代码.MySQL

IntelliJ IDEA 2020.2 全家桶及以下版本激活工具大全【喜讯】

推荐阅读: IDEA 2020版本最新破解教程可激活至2089年(推荐)(idea) https://www.jb51.net/article/195292.htm 最新idea2020注册码永久激活(激活到2100年) https://www.jb51.net/article/178193.htm 该工具于2020年9月亲测有效,支持Jetbrains全系列产品2020.2及以下版本激活教程(可以永久激活Windows.MAC.Linux),本教程以v2020.2最新版本进行演示 同时支持以下

如何免费获取 Jetbrain 全家桶使用兑换码的正确姿势(推荐)

自今年1月份以Jetbrain公司严厉打击旗下开发工具产品(如:IntelliJ IDEA.WebStorm.PyCharm等)的盗版破解以来.求新破解方式.分享新破解方法的帖子或信息经常可以在各技术社区或微信社群中看到. 大批 IDEA 激活码到期之后的乱象...一文中介绍了如何通过正常途径继续使用这些开发工具的三种方法. **学生免费:**JetBrains的全线产品对在校学生全部免费开放.所以,你只要有专属于学校的邮箱,就可以注册账号并免费使用它们. **开源免费:**如果您跟我一样,热爱

详解使用React全家桶搭建一个后台管理系统

引子 学生时代为了掌握某个知识点会不断地做习题,做总结,步入岗位之后何尝不是一样呢?做业务就如同做习题,如果'课后'适当地进行总结,必然更快地提升自己的水平. 由于公司采用的react+node的技术栈,于是就完成了一个reactSPA小项目,计划日后把平时工作中遇到的业务以及学习中遇到有趣的东西给抽象成demo展示出来.目前该项目只是把雏形搭好,效果如下.在此文的基础上,写了篇新文章使用React全家桶搭建一个后台管理系统,欢迎围观.(附注:因为项目不时更新,文章不一定会即时更新,所以以实际的

Vue全家桶实践项目总结(推荐)

从前端的角度看,Vue可以说是目前最理想的前端MVVM框架,一切为界面服务,上手难度低,本文就将记录使用Vue全家桶(Vue+Vue-router+Vuex)重构一个jQuery+template项目的过程,以及期间的收获. 入门 Vue的官方文档就是学习Vue的最佳教程,没有之一,可能因为框架作者是设计出身,没有后端背景,因此各种抽象概念在Vue里都得以用最容易理解的方式被恰到好处的阐述,这里只简单介绍Vue.Vue-router.Vuex的概念,要全面学习建议去官方文档. Vue Vue的核

全面介绍vue 全家桶和项目实例

简介 "简单却不失优雅,小巧而不乏大匠". 2016年最火的前端框架当属Vue.js了,很多使用过vue的程序员这样评价它,"vue.js兼具angular.js和react.js的优点,并剔除了它们的缺点".授予了这么高的评价的vue.js,也是开源世界华人的骄傲,因为它的作者是位中国人–尤雨溪(Evan You). Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进式框架.它是以数据驱动和组件化的思想构建的,采用自底向上增量开发的设计.

vue项目搭建以及全家桶的使用详细教程(小结)

前言 vue是现阶段很流行的前端框架,很多人通过vue官方文档的学习,对vue的使用都有了一定的了解,但再在项目工程化处理的时候,却发现不知道改怎么更好的管理自己的项目,如何去引入一些框架以及vue全家桶其他框架的使用,以下将详细地介绍本人在处理工程文件构建的过程:对于刚开始解除vue的新手,建议使用官方脚手架vue-cli,当然,如果你对于webpack很熟悉,你也可以自己动手搭建自己的脚手架,当然如果你没把握的话,还是推荐使用vue-cli,能更好的帮助你搭建项目: 步骤一.安装vue-cl

React全家桶环境搭建过程详解

本文介绍了React全家桶环境搭建过程详解,分享给大家,具体如下: 环境搭建 1.从零开始搭建webpack+react开发环境 2.引入Typescript 安装依赖 npm i -S @types/react @types/react-dom npm i -D typescript awesome-typescript-loader source-map-loader 新建tsconfig.json { "compilerOptions": { "outDir"