导航:首页 > 操作系统 > android隐藏类

android隐藏类

发布时间:2022-05-24 23:58:29

㈠ 如何调用android隐藏API

对于这个问题,一般可以用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); //wSettings是WebSettings对象
} catch(Exception e) {
Log.i(LOGTAG, e.toString());
} (四)访问public类的私有成员变量 try { Method m = WebSettings.class.getDeclaredMethod("getCurrentUserAgent");
m.setAccessible(true); //关闭访问检查 m.invoke(wSettings); //wSettings是WebSettings对象
} catch(Exception e) {
Log.i(LOGTAG, e.toString());
} (五)访问public类的@hide的public成员 try { Object[] args = {Integer.valueOf(5)}; Method m = WebSettings.class.getMethod("setPageCacheCapacity", new Class[]{int.class});
m.invoke(wSettings, args); //wSettings是WebSettings对象
} 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包,这种方法比较简单。

㈡ Android应用开发中如何使用隐藏AP

其中很大的原因就是Android系统本身还在不断的进化发展中。从1.0、1.1到现在即将问世的Android 2.3.4。 这些隐藏的API本身可能是不稳定的,所以,使用隐藏API,意味着程序更差的兼容性。 如果要我给出建议的话,最好还是不要使用隐藏的API。不过有时为了实现Android应用某些特殊的功能或者效果,隐藏的API往往能发挥意想不到的作用。这些API具体能做些什么事,我就不在这里举例了。正好,如果你不知道隐藏API能做什么的话,那么还是尽早放弃使用它们吧……
不想长篇大论,直接进入正题吧。使用隐藏API主要有两种办法:一是我在《Java反射机制的学习》一文中提到的反射的方法得到隐藏API;二是使用源码编译时生成的全编译的jar包classes.jar。
使用反射的方式,在这里就不详细介绍了,具体见《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.。

㈢ 如何得到包含隐藏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包种比较简

㈣ 如何使用android系统隐藏hide的类和方法

首先编译Android的系统,其实直接编译framework也行,在编译完成后在out\target\common\obj\JAVA_LIBRARIES\framework_intermediates下面有个classes.jar的文件,我们就需要这个jar文件。
将classes.jar放在某个文件夹下面,然后将其解压,我们可以得到一个android文件夹和META_INF文件夹,
找到我们常使用的sdk版本目录下面的android.jar,比如:sdk\platforms\android-19\android.jar,将其放在某个文件夹下面解压。解压后会得到很多个文件夹,包括:android,java,com,javax,org,META_INF等文件夹以及resources.arsc文件。
将上面classes.jar解压出来的android文件夹下面的所有文件,复制到android.jar解压出来的android文件夹里面,并覆盖相同文件名的文件及文件夹。其实你注意上面的两个android文件夹内容大致一样。
下面到了最关键的一步,就是把现有的文件夹中的classes打包成java文件,首先在解压android.jar的根目录下面打开cmd命令窗口,输入命令jar cvfm android.jar META-INF/MANIFEST.MF ./ 。如果找不到jar,请先配置环境变量。接着就看到这个打包的详细信息在控制台输出。关于jar的详细命令参数请看这里jar命令详解
顺利的话,就可以得到一个android.jar 文件了,然后在把得到的jar文件解压看看是否和原来的结构一直,不要多打包一层文件目录哟,不然肯定没办法用的,如果正确的话,将替换我们sdk中的android.jar文件。例如替换:sdk\platforms\android-19\android.jar文件。
然后测试,打开eclipse,随便在一个android工程中的java文件中输入SurfaceControl看看系统是否会提示我们导入SurfaceControl包,注意4.3以上才有SurfaceControl哟,如果没有则看看检测上面哪一步是否出错了。
易错点总结:
要保证第一步生成的classes.jar文件是正确的,有的系统打包的classes默认是在classes.odex中,如果解压出来没有android文件夹基本就是这个问题了。
是否用classes.jar解压出来的android文件夹完全覆盖android.jar解压出来的android文件夹下面的内容。因为隐藏的方法都是在classes.jar解压出来的android文件夹下面。
在打包命令的时候,文件夹跟目录错误,导致打包出来的jar多一层文件夹,或者少一层(少打包其他文件夹),大概android.jar 大小有20M左右。
jar 命令参数有误,请具体参看jar方法参数的使用方法和含义。

㈤ “android系统”的手机怎么隐藏图片和视频

有以下方法:

  1. 把视频或者图片放进文件夹里,并且文件夹名字前面加一个【】就好了 。

  2. 也可以:下载一个文件管理软件 在里面勾选【属性】 改为隐藏

  3. 360安全卫士 ,创建私密空间 ,然后将文件夹拖进去。

㈥ 安卓手机 怎样隐藏应用程序!!!!


这个只要你没有卸载的话,都会在设置 管理应用 中找到的。


再者其他的途径也能启动隐藏的软 如换个桌面 xperia主页就可以隐藏应用抽屉程序,但可以在桌面上菜单的应用程序里添加到桌面。

最好还是给程序伪装或加密

伪装可以换个名字和图标 加密的软件有很多。

需要root xposed框架 应用图标名字随心换:xSuite模块 maxlock模块

maxlock程序锁可以给同一个应用的不同行为上锁,支持pin 密码 图案 敲击码 只有卸载或冻结了才会失去对加密程序的保护,通过结束程序是做不到的。

maxlock模块应用;图片依次是 1主界面 可以设置背景图片 显示系统应用等;2应用密码或假死设置其中activities是对程序的行为上锁,可以只限制部分功能,比如设置中的时间、语言和输入法的锁定;3自定义密码的种类;4密码锁的界面;5图案锁的界面,看到的背景就是设置的自己喜欢的。

㈦ 安卓几开始android系统文件被隐藏了

安卓10。
要显示已隐藏的文件夹或文件,可使用Root Explorer这类root权限文件管理软件,找到已隐藏的文件或文件夹,选择“重命名”,去掉前面的“.”就可以了。另外要说的是,在Windows系统中,不能建立以“.”开头的文件或文件夹。所以这种隐藏文件夹的方法只能在Android系统手机上操作,而利用这种方法隐藏的文件夹在手机以U盘模式连接电脑后,在Windows系统中是可见的,希望大家在使用中注意。

㈧ android如何调用系统的隐藏方法

比如如果要在安卓4.0以上显示菜单的图标

publicvoidenableMenuIcon(android.widget.Menumenu){
if(android.os.Build.VERSION.SDK_INT<14)return;//系统在4.0以下时禁用
try{
Classclz=Class.forName("com.android.internal.view.menu.MenuBuilder");//找到要调用的方法所在类
java.lang.reflect.Methodm=clz.getDeclaredMethod("setOptionalIconsVisible",boolean.class);//找到指定参数类型和参数数量的方法名
m.setAccessible(true);//设置可访问该域
m.invoke(menu,true);//模拟这个动态的对象进行调用该方法,并附加方法参数
}catch(Throwablee){}
}
阅读全文

与android隐藏类相关的资料

热点内容
产品经理和程序员待遇 浏览:439
解忧程序员免费阅读 浏览:106
录像免压缩 浏览:504
总结所学过的简便算法 浏览:360
南昌哪些地方需要程序员 浏览:759
三台服务器配置IP地址 浏览:173
如何用命令方块连续对话 浏览:278
win7linux共享文件夹 浏览:304
命令符打开本地服务 浏览:599
android应用程序源码 浏览:703
安卓开发工程师简历怎么写 浏览:61
热水器水量服务器是什么意思 浏览:117
stk卫星编译 浏览:480
对后台程序员的要求 浏览:761
ios大文件夹图标 浏览:626
生的计划pdf 浏览:715
oppoa93加密便签在哪查找 浏览:21
两个数字的加减乘除运算编程 浏览:227
给手机加密码忘记了怎么办 浏览:601
单片机运算符 浏览:297