调用android系统隐藏的API的几种方法(以调SystemProperties这个类为例):

1、用反射:

//获取系统属性public static String getProperty(String key, String defaultValue) { String value = defaultValue; try { Class> c = Class.forName("android.os.SystemProperties"); Method get = c.getMethod("get", String.class, String.class); value = (String)(get.invoke(c, key, "unknown" )); } catch (Exception e) { e.printStackTrace(); }finally { return value; }}//设置系统属性public static void setProperty(String key, String value) { try { Class> c = Class.forName("android.os.SystemProperties"); Method set = c.getMethod("set", String.class, String.class); set.invoke(c, key, value ); } catch (Exception e) { e.printStackTrace(); }}

注意:编译时要注释掉 //implementation fileTree(include: ['.jar'],dir: 'libs')*

2、添加系统framework.jar

在目录下``**out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar**改名得到 framework.jar 把jar包添加到lib目录并add as library,修改项目的build.gradle文件,在repositories里加入如下代码

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

在app的build.gradle中添加依赖

dependencies { provided files('libs/framework.jar')// implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:25.4.0' implementation 'com.android.support.constraint:constraint-layout:1.0.2' testImplementation 'junit:junit:4.12'} // 作用域改为provided

3、添加layoutlib.jar依赖

修改app中gradle.build文件添加默认的layoutlib.jar(或是指定sdk添加)即可调用隐藏的api,配置如下

修改app中的build.gradle,注意在android{}之后添加如下代码

def getLayoutLibPath() { return "${android.getSdkDirectory().getAbsolutePath()}" + "/platforms/" + android.compileSdkVersion +"/data/layoutlib.jar"}//String SDK_DIR = System.getenv("ANDROID_SDK_HOME")//if (SDK_DIR == null){// java.util.Properties prop = new Properties()// prop.load(new FileInputStream(project.rootProject.file("local.properties")))// SDK_DIR = prop.get("sdk.dir")//}dependencies { provided files(getLayoutLibPath()) implementation 'com.android.support.constraint:constraint-layout:1.0.2'// provided files("${SDK_DIR}/platforms/android-21/data/layoutlib.jar")

android hide方法 末班,Android调用@hide系统隐藏类的几种方法相关推荐

  1. Android调用@hide系统隐藏类的几种方法

    调用android系统隐藏的API的几种方法(以调SystemProperties这个类为例): 1.用反射: //获取系统属性 public static String getProperty(St ...

  2. android hide方法 末班,android 如何引用@hide(隐藏)的类,方法和常量?

    最近在处理SD卡的读写问题,本地Elipse能跑的程序提交到服务器上的时候,报错,找不到import的类,还有一些方法也是找不到,利用sourceInsight搜了源码发现都是用了@hide标记的类和 ...

  3. android eclipse中导入framework.jar以及使用其隐藏类的方法

    想使用开关3G的网络数据 ConnectivityManager cm =(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERV ...

  4. android开发 实现动态获得app的cpu占有率并导出文件的两种方法。

    android开发 实现动态获得app的cpu占有率并导出文件的两种方法. 最近在做学校实验室的项目的时候,师兄要求我对app的性能进行评估,主要是从电量.cpu占有率.python模型的响应时间三者 ...

  5. android 系统升级 方法,安卓系统怎么升级 浅谈安卓系统更新升级的几种方法

    最近有网友问小编"安卓系统怎么升级?",针对该问题,笔者也在网上查找了下相关资料,不过并没有找到什么有价值的相关介绍,多数都是介绍如何自动升级.或者下载升级版包等等方法,对于一些常 ...

  6. android 国内 更新方法,手机安卓系统怎么升级 安卓系统更新升级的三种方法介绍...

    最近有网友问小编"安卓系统怎么升级?",针对该问题,笔者也在网上查找了下相关资料,不过并没有找到什么有价值的相关介绍,多数都是介绍如何自动升级.或者下载升级版包等等方法,对于一些常 ...

  7. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法

    Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...

  8. 详解易语言调用大漠插件注册vip的三种方法

    详解易语言调用大漠插件注册vip的三种方法 1.将大漠插件所有命令封装成易语言类模块.(类模块调用法) 2.将大漠插件所有命令封装成Ec模块(EC模块调用法) 3.将大漠插件所有命令封装成易语言支持库 ...

  9. 前端js调用后端API获取数据的三种方法(2022.7.25)

    前端js调用后台API获取数据的三种方法(2022.7.25) 前言 需求分析 一个Get实例 浏览器请求 SoapUI软件请求 一个Post实例 浏览器请求 SoapUI软件请求 1.Http简介( ...

最新文章

  1. matlab编译错误怎么查找,matlab - Matlab mex文件编译错误-“未启用SSE2指令集” - 堆栈内存溢出...
  2. Hibernate 异常 Unable to instantiate default tuplizer
  3. 14.索引数组初始化
  4. 数据科学中的数据可视化
  5. 经典水墨素材点缀中国风海报|简约国际范
  6. arcgis风向_[ArcGIS] 空间分析(六) 追踪分析(台风路径)
  7. springboot响应结果超长(7.8M)浏览器无法接收
  8. Win 7 安装VMware Workstation Pro 14出现 “Intel VT-x禁用”问题以及“无法连接 MKS: 套接字连接尝试次数太多;正在放弃”问题的实质性解决
  9. Android项目目录结构中各个文件夹的作用
  10. 微信小程序图片上传并展示
  11. 实现option上下移动_jQuery操作Select的Option上下移动及移除添加等等
  12. 哥尼斯堡的“七桥问题” (25 分)(DFS)
  13. ALM11 QC11 官方中文安装包下载
  14. 怎样用计算机粉碎文件夹,怎么使用电脑文件管家粉碎功能
  15. 逻辑谬误_新网络谬误
  16. 如何搭建个人网站(详细完整,附阿里云视频教程推荐)
  17. Python编写中国象棋棋盘(可视化页面)
  18. 基于Ubuntu20.04运行OP-TEE_3.17.0_QEMU_V8的环境搭建
  19. __CTOR_LIST__和__DTOR_LIST__解释
  20. Android开发者上手宝典(三)

热门文章

  1. linux ubuntu 上安装rar 压缩软件
  2. Linux安装微信web开发者工具
  3. 【动手学深度学习PyTorch版】12 卷积层
  4. Linux下读取doc,docx文件
  5. nginx配置只开放指定目录访问
  6. 初遇初识初知接下来是什么_初识爱|《傲慢与偏见》书评
  7. new FormData() - FormData对象的作用及用法
  8. backtrader源码解析_BackTrader 中文文档 内置指标参考
  9. java连接 mdx,olap4j连接sap hana的xmla服务mdx查询报错【已解决】
  10. docker ps 不显示问题,