当前位置:首页 » 安卓系统 » android隐藏api

android隐藏api

发布时间: 2022-08-16 14:17:12

1. Android应用开发中如何使用隐藏的API

尽量不要使用隐藏的api,不稳定,如果确实需要使用,使用反射调用

2. Android studio 怎样使用隐藏API

http://stackoverflow.com/questions/7888191/how-do-i-build-the-android-sdk-with-hidden-and-internal-apis-available
一般两种方式:1、使用java的反射,具体实现你可以网上查一下。2、通过导入android源码编译过的classes.jar

3. 如何得到包含隐藏API的Android类库

于问题般用Java Reflect技术解决()访问隐藏public类 例PolicyManager隐藏类非要App层访问使用reflect技术: try { Class policyClass = Class.forName("com.android.internal.policy.PolicyManager"); } catch (Exception e) { e.printStackTrace(); }(二)访问隐藏类static 没隐藏类象实例所能用null访问static或员: try { Method makenewwindow = policyClass.getMethod("makeNewWindow", new Class[] {Context.class}); Window win = (Window)makenewwindows.invoke(null, context); } catch (Exception e) { e.printStackTrace(); }(三)访问public类私员变量 try { Field f = WebSettings.class.getDeclaredField("mBuiltInZoomControls"); f.setAccessible(true); //关闭访问检查 f.setBoolean(wSettings, false); //wSettingsWebSettings象 } catch(Exception e) { Log.i(LOGTAG, e.toString()); } (四)访问public类私员变量 try { Method m = WebSettings.class.getDeclaredMethod("getCurrentUserAgent"); m.setAccessible(true); //关闭访问检查 m.invoke(wSettings); //wSettingsWebSettings象 } catch(Exception e) { Log.i(LOGTAG, e.toString()); } (五)访问public类@hidepublic员 try { Object[] args = {Integer.valueOf(5)}; Method m = WebSettings.class.getMethod("setPageCacheCapacity", new Class[]{int.class}); m.invoke(wSettings, args); //wSettingsWebSettings象 } catch(Exception e) { Log.i(LOGTAG, e.toString());} try {Method m = WebView.class.getMethod("getWebChromeClient"); Object ob = m.invoke(mSubView); WebChromeClient client = (WebChromeClient) ob; } 利用反射技术优点灵能解决些访问限制问题能够兼容系统捕获异使程序至于崩溃;缺点步骤比较需要熟悉要调用类、名称访问属性量使用反射增加代码代码健壮性利般hide类或员能太熟稳定所便公 另外种解决访问问题导入全编译classes.jar包种比较简

4. 市面上有一款android的按键精灵,他是基于什么原理实现的实现

它是基于Lua脚本语言来实现的。

触动精灵是一款模拟手机触摸、按键操作的软件,通过制作脚本,可以让触动精灵代替双手,自动执行一系列触摸、按键操作。

触动精灵简单、易用,不需要掌握任何编程知识就可以录制出功能强大的脚本;还可以使用编程知识,编写出功能更为复杂,交互更为灵活的脚本;只要能够在手机上完成的人为操作,触动精灵都可以代替完成,不仅省力,而且高效。

(4)android隐藏api扩展阅读:

1、软件介绍

触动精灵的脚本编写基于Lua脚本语言,支持其所有标准函数库。除了能够模拟点击、移动、单击 Home 键之外,触动精灵还提供一系列取色、找色、截图、找图等函数,更有丰富的网络插件、文件操作插件可供选择,脚本作者可以选择不公开源代码发布自己的脚本。

2、软件功能

(1)网络游戏中可作自动化脚本实现自动打怪,自动补血,自动说话等;

(2)办公族可用它自动处理表格、文档,自动收发邮件等;

(3)循环播放、定时运行能够按计划执行重复甚至繁杂的工作。

3、软件特点

(1)安装、操作简单;

(2)支持 Lua 基本函数库,提供模拟函数支持,第三方插件接口;

(3)集脚本试用、加密、编译与授权于一体的脚本分发系统。

参考资料来源:网络-触动精灵

5. 怎样用java反射android的隐藏api

Class.forName(),得到class
然后看有什么构造函数和参数、方法和参数、什么属性等

6. 怎么反射android的隐藏API,例如我要反射出“IBatteryStats”类

在源码中编译还反射干嘛?直接用不得了~
反射只能发射Client端的对象,但是要知道,好多对象都是在Server的,Client只是个代理。
所以凡是接口类,反射都不一定能解决问题。
如果是开发第三方应用,反射肯定有局限,如果是系统级开发,最好别用反射,影响效率。

7. Android开发中怎样使用隐藏的API

使用反射的方式,在这里就不详细介绍了,具体见《Java反射机制的学习》。利用反射机制使用隐藏API的方法的优点是灵活,能够在不兼容的系统捕获异常,而使程序不至于崩溃;缺点是过程太繁杂,而且对于隐藏类的继承等很难实现。如果需要大量使用隐藏API,使用反射无疑会让程序员很烦的。

这篇文章主要要介绍的就是通过导入全编译的classes.jar包,来实现对隐藏API的使用。这种方法实现简单,程序员编程也简单,就像是那些隐藏的API在SDK中变得可见了一样。它的缺点就是兼容性问题,希望使用者引起重视,在使用时考虑清楚。

编译Android框架源码后,在源码路径下会生成out文件夹,在这个文件夹下的out"target"common"obj"JAVA_LIBRARIES"framework_intermediates"路径下,会生成全编译的jar库classes.jar。你需要做的就是将这个jar库导入到你的工程中。

在导入classes.jar过程中,有可能会出现两个问题(我是使用eclipse开发环境的,所以仅对此环境会遇到的问题进行说明)。

问题一是按导入其他jar的方式导入此jar库,发现编译很慢,有时甚至无法编译成功,eclipse崩溃或者提示“java.lang.OutOfMemoryError: Java Heap Space”错误。这个问题,可能是由于jar太大的原因吧,网上说改eclipse.ini里的参数,个人试了下,似乎没有什么作用。我的做法是在eclipse中新建自定义的library,然后将classes.jar放在library中。Android工程添加library,就像使用SDK一样。这样可以很好地解决这个问题。具体如何新建自定义的library我就不详述了,不知道的朋友自己搜索下或者摸索下,很简单的。

问题二是已经正确导入了jar库,却发现还是找不到隐藏的API。这个的原因是Build class path order不对,具体说就是android.jar和classes.jar的导入顺序不对。应该将classes.jar的顺序放在android.jar之前,具体调节Build class path order的地方就在properties -> Java Build Path -> Order and Export.。

成功解决这两个问题之后,相信你就可以正常使用Android隐藏API了。

热点内容
云服务器不用开电脑吗 发布:2025-01-17 01:39:39 浏览:71
csql分页 发布:2025-01-17 01:35:11 浏览:707
序列比对算法哪年出现 发布:2025-01-17 01:35:05 浏览:754
我的世界怎么看服务器高度 发布:2025-01-17 01:30:02 浏览:888
jap服务器环境搭建 发布:2025-01-17 01:22:37 浏览:996
铜镜数据库 发布:2025-01-17 01:08:57 浏览:673
上传图片链接 发布:2025-01-17 01:08:11 浏览:891
智跑买车可以提哪些配置 发布:2025-01-17 01:06:46 浏览:463
qq2013源码 发布:2025-01-17 01:06:35 浏览:94
sql的decode 发布:2025-01-17 01:01:01 浏览:4