在安卓app开发中,通常不会遇到需要使用自定义framework库的情况,使用的都是标准的内核库。但也有例外,比如针对定制化的ROM,ROM厂商可能在ROM中对安卓源码做过修改,对应用层app暴露出与原始API不一样的接口形式,通常这种情况下,ROM厂商会提供他们的framework.jar,供开发者使用,下面就来记录一下如果在Android Studio中使用这种jar包去编译我们的工程。

Step 1. 在需要使用这些定制化API的module中加入该framework.jar的引用,与普通API添加稍有不同,我们要用provided的方式而不是compile,举个栗子:

dependencies {
compile files('libs/abcdd.jar')
provided files('libs/framework.jar')
}

这里也顺便说一下为什么用provided,顾名思义,provided嘛就说后面这个jar包已经提供过了,打包时不要再把我打到apk中,运行时能不能找到对应的API方法是我的事,IDE别替我操心了,这样可以避免无意义地增加包大小。

Step 2. 在project层的build.gradle文件中添加如下代码:

allprojects {
repositories {
jcenter()
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.add('-Xbootclasspath/p:app/libs/framework.jar')
}
}
}

这段代码大致意思就是把app/libs/framework.jar这个jar包加入到JavaCompile中,告诉java编译器优先使用这里跟的jar包而后才用系统的原生库(记得替换当中的jar路径为你的实际路径)。

Sync Project with Gradle Files,从IDE中看到定制化的方法或常量仍然是标红状态,但编译已经可以通过了,至此功成!

Android Studio中如何使用自定义的framework库的更多相关文章

  1. 如何在Android Studio中导入JNI生成的.so库

    由于在原来的ADT的Eclipse环境中,用ndk_build工具生成了相应的各个.so库文件之后,eclipse工具就会自动把这些库导入到apk中.而Android Studio目前为止(0.86版 ...

  2. 如何将Eclipse中的项目迁移到Android Studio 中

    如何将Eclipse中的项目迁移到Android Studio 中 如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的 ...

  3. Android开发的小技巧,在Android Studio中使用Designtime Layout Attributes

    在编写xml文件时,为了预览效果,经常会使用默认填上一些内容,比如TextView时,随便写上一个text <TextView ... android:text="Name:" ...

  4. android studio 中查找代码中的硬编码

    在Android Studio中同时按下Ctrl + Shift+ F  或者其他自定义的快捷键,打开全局搜索,在全局搜索中输入 ^((?!(\*|//)).)+[\u4e00-\u9fa5] 并打勾 ...

  5. [转]-如何将Eclipse中的项目迁移到Android Studio 中

    英文地址:http://developer.android.com/sdk/installing/migrate.html 翻译:Android Studio 中文组(大锤译) 如果你之前有用Ecli ...

  6. studio--如何将Eclipse中的项目迁移到Android Studio 中

    如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的是生成Build Gradle的文件.因为Android Studi ...

  7. Android studio 中引用jar的其实是Maven?(二)

    上一篇:Android studio 中引用jar的其实是Maven?(一) 搭建maven仓库: 去了解一个新的事物的时候,最好的方式就是去使用它.例如去了解一座城市的时候,最好的方式就是乘坐公共交 ...

  8. Android Studio 中 Live Templates 的使用

    Android Studio 中的 Live Templates 是什么? Live Templates 有什么用处? Live Templates 可以理解为:在你编码过程中,IDE自动生成的代码内 ...

  9. Android Studio 中的FindBugs插件使用,轻松帮你发现Bug (转)

    在日常开发过程中难免会因为一时疏忽而留下一些Bug,这些Bug就是埋在程序里的定时炸弹,如果不能及时铲除就会导致程序的不稳定,异常或闪退的现象,从而导致用户的体验的下降.那么怎么才能找出这些埋在程序里 ...

随机推荐

  1. 小程序被冻结,忘记原始ID,如何找回?

     登录成功,提示被冻结,选择"账号找回": 阅读须知:账号类型选择“小程序”,需要输入小程序的原始ID,此时已经不记得了~~ 微信:搜索 “ 公众平台安全助手 ” 并关注  点击查 ...

  2. [POI2014]FAR-FarmCraft (树规+贪心)

    题干 In a village called Byteville, there are houses connected with N-1 roads. For each pair of houses ...

  3. HDU - 5970 题解

    题目链接 HDU - 5970 分析 很显然\(f(x,y)\)与\(f(x+y*k,y)\)的结果相同,因为它们在第一次取模后会变成相同的式子 我们再看一下数据的范围,突破口肯定在\(m\)那里 那 ...

  4. Ants,小小思维题。

    题目链接 题意: 蚂蚁在一个杆子上行走,每个蚂蚁有开始的位置,且速度都是1,如果蚂蚁“相撞”就会各自回头,以原速度继续行走,走到杆子边上就会掉下去,请问最快都掉下去的时间和最慢都掉下去的时间. 题目分 ...

  5. day35 socket套接字介绍

    目录 一.套接字发展史与分类 二.套接字工作流程 三.基于tcp的套接字 一.套接字发展史与分类 套接字起源于 20 世纪 70 年代加利福尼亚大学伯克利分校版本的 Unix,即人们所说的 BSD U ...

  6. 查看sudo的history:配置sudolog

    sudo 权力很大,但责任更重大! We trust you have received the usual lecture from the local System Administrator. ...

  7. order by 注入姿势

    order by 注入原理 其实orde by 注入也是sql注入的一种,原理都一样就是mysql语法的区别,order by是用来排序的语法. sql-lab讲解 判断方法 1.通过做运算来判断如: ...

  8. day4 python 运算符

    python运算符 1.算数运算符( + - * / // % ** ) # + - * / // % ** # 加 减 乘 除 整除 余数 幂 ​ #注意 #1. / 得到浮点型, // 得看被除数 ...

  9. Go Pentester - TCP Scanner

    Simple Port Scanner with Golang Use Go‘s net package: net.Dial(network, address string) package main ...

  10. GPO - AppLocker

    AppLocker can help you: Define rules based on file attributes that persist across app updates, such ...