第三方apk Android sdk 定制与调用hide的API

本文介绍了如何在Android项目中调用被@hide标注的API。通常,标准SDK不包含这些隐藏API,但有时项目需求可能需要访问它们。文章详细讲解了三种方法:1) 自定义SDK,替换android.jar;2) 使用定制的framework.jar;3) 通过反射调用。此外,还提到了为实现调用这些API,需要对apk进行系统签名或将其安装到系统目录下的步骤。
摘要由CSDN通过智能技术生成

正常情况下的标准sdk中是不含Android源码系统中的标注有@hide的API的,所以仅仅只在标准的sdk是无法使用某些API的,原本google之所以将某些API对第三方app不开放,也是为了系统的安全性作想。 但是有的时候在项目中需要做一个能够访问这些被系统隐藏的API,这个时候怎么办呢?

目前主要有如下几种方法:
1.为了能够是第三方sdk也能正常使用这些API,需要对As中的sdk做一些处理:
导入现成定制的sdk(相应的jar包文件中存在这些API),也可以
自己定制sdk

将你的sdk名/platforms/android-sdk版本号(如28(P),这里的版本号必须与你的工程中对应模块(app)的build.gradle中配置项compileSdkVersion 28的要一致。并且可以按照需要配置minSdkVersion/targetSdkVersion版本号)文件夹下的android.jar直接替换成现成定制的sdk中的对应文件夹下的android.jar。或者通过ubuntu自带的jar包管理工具将需要添加的文件夹如fingerprint(包含.class 字节文件)替换到sdk名/platforms/android-sdk版本号/android.jar中(通过解压你的工程名/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/中的中间文件classes.jar的jar包,获得/android/hardware/目录下的fingerprint文件夹)。

Note:classes.jar与android.jar不是同等的,不能直接进行替换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值