- 浏览: 30886 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
最新评论
-
JavaJ2me:
请问还知道别的方法,开启移动网络吗??
Android APN设置 -
Ancool:
pdf没研究,有空我看看,代码肯定是需要自己写的,除非别人已经 ...
Android打开文件 -
Ancool:
littlenewus 写道帅哥 如果打开一个html或者p ...
Android打开文件 -
littlenewus:
帅哥 如果打开一个html或者pdf type应该写什么?
Android打开文件
前提:我们需要得到
Android
系统源码编译输出的一个文件
out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar
这个包里面包含所有的系统api,
隐藏的, 公开的
添加
jar方法
右键功能菜单->Properties->Java
Build Path
Libraries选项卡
这时应该有一个列表,
如果你没有添加过, 应该只有一项, 就是系统自带的Android SDK, 选中后,右手边有一个删除, 先删除系统添加的sdk.
点Add
Library -> User Library
选择User
Library 按钮, 新建一个User Library 将刚才那个文件 classes.jar 和系统本身的文件都导入进来, 调整下顺序, 将
classes.jar 调到前面
这样添加了之后,
就可以使用系统隐藏的api了
使用隐藏api,
有个前提:
许多api涉及到系统权限问题,
比如 后台安装文件 api PackageManager.installPackage 要求有安装程序的权限, 而这个安装程序权限不是随便有的,
只有经ROM签名认证的才可以使用这个权限. 虽然说可以在配置文件里面添加这个权限, 但是悲剧的是你仍然不能拥有这个权限, 在这点上,
Google做的真绝..
好了,
虽然我们不能安装, 但用api去查看apk总该可以了吧?
Google没有公开这个Api,
但又了上面这个方法, 我们可以使用了
//apk包的文件路径 String apkPath = "/sdcard/qq.apk"; //这是一个Package 解释器, 是隐藏的 //构造函数的参数只有一个, apk文件的路径 PackageParser packageParser = new PackageParser(apkPath); //这个是与显示有关的, 里面涉及到一些像素显示等等, 我们使用默认的情况 DisplayMetrics metrics = new DisplayMetrics(); metrics.setToDefaults(); //这里就是解析了, 四个参数, //源文件File, //目的文件路径(这个我也没搞清楚怎么回事, 看Android安装器源码, 用的是源文件路径, 但名字却是destFileName) //显示, DisplayMetrics metrics //flags, 这个真不知道是啥 PackageParser.Package mPkgInfo = packageParser.parsePackage(new File(apkPath), apkPath, metrics, 0); //应用程序信息包, 这个公开的, 不过有些函数, 变量没公开 ApplicationInfo info = mPkgInfo.applicationInfo; //Resources 是用来获取资源的 , 而这里获取的资源是在本程序之外的 //至于为什么这么弄, 我搞不懂. Resources pRes = getResources(); AssetManager assmgr = new AssetManager(); assmgr.addAssetPath(apkPath); Resources res = new Resources(assmgr, pRes.getDisplayMetrics(), pRes.getConfiguration()); CharSequence label = null; if (info.labelRes != 0) { try { label = res.getText(info.labelRes); } catch (Resources.NotFoundException e) { } } if (label == null) { label = (info.nonLocalizedLabel != null) ? info.nonLocalizedLabel : info.packageName; } //这里就是读取一个apk程序的图标 if (info.icon != 0){ Drawable icon = res.getDrawable(info.icon); ImageView image = (ImageView) findViewById(R.id.iv_test); image.setVisibility(View.VISIBLE); image.setImageDrawable(icon); } }
发表评论
-
Android 中 Proguard 和 JNI 的相关问题
2012-03-27 12:26 915在Android项目中用到JNI,当用了proguard后,发 ... -
Android中隐藏标题栏和状态栏
2011-03-21 14:57 1418一、隐藏标题栏 //隐藏标题栏 this.re ... -
Android APN设置
2011-01-23 21:41 1460由于Android对于APN的网络API没有公开,不过我们可以 ... -
Android原生(Native)C开发之五:zlib移植笔记
2011-01-23 20:53 1048zlib(http://www.zlib.net/)是一 ... -
Android原生(Native)C开发之四:SDL移植笔记
2011-01-23 20:48 1694SDL(Simple DirectMedia Layer ... -
Android原生(Native)C开发之三:鼠标事件篇(捕鼠记)
2011-01-23 20:41 955在做SDL至Android的移植时,键盘事件是能正常捕获到,看 ... -
Android原生(Native)C开发之二:framebuffer篇
2011-01-23 20:16 991虽然现在能通过交叉环境编译程序,并push到Android ... -
Android原生(Native)C开发之一:环境搭建篇
2011-01-23 20:12 1073Android是基于Linux的操作系统,处理器是ARM的,所 ... -
Android隐藏程序及调用
2011-01-23 14:52 1402新建一个activity,编辑AndroidMani ... -
Ubuntu下使用Android ADB
2011-01-23 14:37 1589android本身就有linux下的SDK包。 所以就方 ... -
Android各种调用
2011-01-23 13:33 8931,web 浏览器 Jav ... -
Android Intent and Intent-filter SDK file
2011-01-23 13:03 1270Android Intent and Intent-filte ... -
Android获取手机型号和系统版本号
2011-01-18 17:19 1244手机型号和版本号获取方法: public void onC ... -
Android打开文件
2011-01-14 13:26 2688/* 在手机上打开文件的method */ p ... -
Android数据存储之二SharedPreferences
2011-01-14 11:19 915在此之前的学习内容是数据存储之一文件存储 ... -
Android数据存储之三SQLite嵌入式数据库(2)
2011-01-14 10:53 11445. 编写测试类 ... -
Android数据存储之三SQLite嵌入式数据库(1)
2011-01-14 10:51 905一、 SQLite 简介 ... -
Android小东东收集
2011-01-14 10:06 957//设置ListView中item第一个的上面和下面两条分隔线 ...
相关推荐
是一款,针对Android OS系统的APK程序,直接反编译修改的工具。 APKDB集合了当今最强悍,最犀利的APK及Dex文件编译工具; 正常安装后,它直接在【鼠标右键】创建快捷菜单; 非常方便汉化工作者,对APK或...
的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
a.3 上传*.apk程序到android market上 812 附录b 升级项目至新版sdk 与honeycomb平板程序部署 815 b.1 android sdk版本与项目最低运行版本设置 816 b.2 升级程序至honeycomb平板运行 816
由于源文件大小为99.3MB,所以采用... A.3 上传*.apk程序到Android Market上 附录B 升级项目至新版SDK 与Honeycomb平板程序部署 B.1 Android SDK版本与项目最低运行版本设置 B.2 升级程序至Honeycomb平板运行
基本信息 Google Android SDK开发范例大全...A.3 上传*.apk程序到Android Market上 附录B 升级项目至新版SDK 与Honeycomb平板程序部署 B.1 Android SDK版本与项目最低运行版本设置 B.2 升级程序至Honeycomb平板运行
基本信息 Google Android SDK开发范例大全...A.3 上传*.apk程序到Android Market上 附录B 升级项目至新版SDK 与Honeycomb平板程序部署 B.1 Android SDK版本与项目最低运行版本设置 B.2 升级程序至Honeycomb平板运行
基本信息 Google Android SDK开发范例大全...A.3 上传*.apk程序到Android Market上 附录B 升级项目至新版SDK 与Honeycomb平板程序部署 B.1 Android SDK版本与项目最低运行版本设置 B.2 升级程序至Honeycomb平板运行
基本信息 Google Android SDK开发范例大全...A.3 上传*.apk程序到Android Market上 附录B 升级项目至新版SDK 与Honeycomb平板程序部署 B.1 Android SDK版本与项目最低运行版本设置 B.2 升级程序至Honeycomb平板运行
由于您的密钥是静态二进制文件的一部分,因此您仍可以通过反编译APK来恢复API密钥。 因此,建议您使用其他措施(如可能的话)添加限制来保护您的密钥。 要求 基于Gradle的Android项目 Android Gradle插件4.1.x或更...
该插件使用Android和iOS本机API从设备的相机读取图像。 然后,将这些图像通过管道传输到MLKit Vision条形码API,该API检测条形码/ qrcode等,并输出预览图像以在颤动纹理上显示。 该插件包括一个小部件,可对摄像...
版本1.1.3-使用DatArchive API创建简单的Dat应用 本生现在具有基本的DatArchive支持,使您可以创建,读取,获取信息以及将文件写入DatArchive。 共享这些数据仍然在进行中。 如何使用本生 本生目前是非常具有alpha...
这个简单的天气应用程序首先读取移动设备的当前地理位置,然后使用开放天气 API 显示今天的天气或未来 7 天的预报天气。 今天的天气显示天气的描述、天气图标、温度、位置、风速、湿度和压力。 Forecast 仅显示天气...