- 浏览: 384836 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
longxishui12:
这个一定要顶得高高的。
[Android UI界面] android中仿iphone实现listview的反弹效果 -
klower.jiang:
Good job, Thank you so much!
能够兼容ViewPager的ScrollView -
ZSRTFAT:
...
file size 的大小计算
转自:
http://hi.baidu.com/jeremy16601/blog/item/2b338ee6b2973ac6f2d385d0.html
/** * 获取未安装的apk信息 * * @param ctx * @param apkPath * @return */ public static AppInfoData getApkFileInfo(Context ctx, String apkPath) { System.out.println(apkPath); File apkFile = new File(apkPath); if (!apkFile.exists() || !apkPath.toLowerCase().endsWith(".apk")) { System.out.println("文件路径不正确"); return null; } AppInfoData appInfoData; String PATH_PackageParser = "android.content.pm.PackageParser"; String PATH_AssetManager = "android.content.res.AssetManager"; try { //反射得到pkgParserCls对象并实例化,有参数 Class<?> pkgParserCls = Class.forName(PATH_PackageParser); Class<?>[] typeArgs = {String.class}; Constructor<?> pkgParserCt = pkgParserCls.getConstructor(typeArgs); Object[] valueArgs = {apkPath}; Object pkgParser = pkgParserCt.newInstance(valueArgs); //从pkgParserCls类得到parsePackage方法 DisplayMetrics metrics = new DisplayMetrics(); metrics.setToDefaults();//这个是与显示有关的, 这边使用默认 typeArgs = new Class<?>[]{File.class,String.class, DisplayMetrics.class,int.class}; Method pkgParser_parsePackageMtd = pkgParserCls.getDeclaredMethod( "parsePackage", typeArgs); valueArgs=new Object[]{new File(apkPath),apkPath,metrics,0}; //执行pkgParser_parsePackageMtd方法并返回 Object pkgParserPkg = pkgParser_parsePackageMtd.invoke(pkgParser, valueArgs); //从返回的对象得到名为"applicationInfo"的字段对象 if (pkgParserPkg==null) { return null; } Field appInfoFld = pkgParserPkg.getClass().getDeclaredField( "applicationInfo"); //从对象"pkgParserPkg"得到字段"appInfoFld"的值 if (appInfoFld.get(pkgParserPkg)==null) { return null; } ApplicationInfo info = (ApplicationInfo) appInfoFld .get(pkgParserPkg); //反射得到assetMagCls对象并实例化,无参 Class<?> assetMagCls = Class.forName(PATH_AssetManager); Object assetMag = assetMagCls.newInstance(); //从assetMagCls类得到addAssetPath方法 typeArgs = new Class[1]; typeArgs[0] = String.class; Method assetMag_addAssetPathMtd = assetMagCls.getDeclaredMethod( "addAssetPath", typeArgs); valueArgs = new Object[1]; valueArgs[0] = apkPath; //执行assetMag_addAssetPathMtd方法 assetMag_addAssetPathMtd.invoke(assetMag, valueArgs); //得到Resources对象并实例化,有参数 Resources res = ctx.getResources(); typeArgs = new Class[3]; typeArgs[0] = assetMag.getClass(); typeArgs[1] = res.getDisplayMetrics().getClass(); typeArgs[2] = res.getConfiguration().getClass(); Constructor<Resources> resCt = Resources.class .getConstructor(typeArgs); valueArgs = new Object[3]; valueArgs[0] = assetMag; valueArgs[1] = res.getDisplayMetrics(); valueArgs[2] = res.getConfiguration(); res = (Resources) resCt.newInstance(valueArgs); // 读取apk文件的信息 appInfoData = new AppInfoData(); if (info!=null) { if (info.icon != 0) {// 图片存在,则读取相关信息 Drawable icon = res.getDrawable(info.icon);// 图标 appInfoData.setAppicon(icon); } if (info.labelRes != 0) { String neme = (String) res.getText(info.labelRes);// 名字 appInfoData.setAppname(neme); }else { String apkName=apkFile.getName(); appInfoData.setAppname(apkName.substring(0,apkName.lastIndexOf("."))); } String pkgName = info.packageName;// 包名 appInfoData.setApppackage(pkgName); }else { return null; } PackageManager pm = ctx.getPackageManager(); PackageInfo packageInfo = pm.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES); if (packageInfo != null) { appInfoData.setAppversion(packageInfo.versionName);//版本号 appInfoData.setAppversionCode(packageInfo.versionCode+"");//版本码 } return appInfoData; } catch (Exception e) { e.printStackTrace(); } return null; }
- testSD.rar (54.3 KB)
- 下载次数: 3
发表评论
-
drawable
2012-04-26 10:58 4050drawable 一些总结: http://www.c ... -
file size 的大小计算
2012-04-25 18:21 11274file size 的大小计算: String an ... -
SpannableStringBuilder
2012-04-25 17:34 4907设置指定文字颜色: String str = &quo ... -
sdcark卡。
2012-04-24 16:53 850转载:http://www.cnblogs.com/Terry ... -
android读写文件
2012-04-22 17:16 937一、 从resource中的raw文件夹中获 ... -
读取assessts的txt
2012-04-22 17:14 949try { // Return an Asset ... -
android 应用程序Activity之间数据传递与共享的几种途径
2012-04-21 22:09 981转载:http://blog.csdn.net/u0fly/a ... -
android 界面布局 很好的一篇总结 【转】
2012-04-19 16:17 1255转载:http://www.eoeandroid. ... -
activity以dialog形式显示
2012-04-11 17:41 63281、AndroidManifest.xml 文件中,申明 ac ... -
Android开发神贴整理
2012-04-06 14:36 785Android开发神贴整理 http://www.apkbu ... -
Google Android开发精华教程(apkbus整理)
2012-04-06 14:35 812转载 Google Android开发精华教程 ... -
使用Iterator 或for-each注意:java.util.ConcurrentModificationException
2012-04-05 16:37 904使用Iterator 或for-each注意:java.ut ... -
分享45个源码
2012-03-31 09:58 857http://www.apkbus.com/android-2 ... -
不显示近期任务
2012-03-28 17:11 1565manifest中设置activity为: (在长按HOME键 ... -
遮罩效果。
2012-03-15 16:53 895来自: http://www.ligotop.com/201 ... -
收藏Android下bitmap内存限制OUT OF MEMORY的方法
2012-03-15 16:15 1567收藏Android下bitmap内存限制OUT OF M ... -
android课程
2012-03-14 15:40 739http://www.mobidever.com/course ... -
获得联系人
2012-03-14 11:56 1061String contactId ; privat ... -
学习网站
2012-03-06 18:10 705http://www.cyqdata.com/android/ ... -
Animation
2012-03-06 16:16 791http://gundumw100.iteye.com/ca ...
相关推荐
在安卓系统中,SD卡文件管理是用户与设备交互的重要环节,它允许用户存储、访问和管理各种数据,包括应用程序、图片、视频等。当应用需要进行版本升级时,通常会涉及三个关键步骤:提示用户升级、下载APK安装包以及...
本主题将深入探讨如何获取已安装的APK信息,包括所有APK、第三方APK、系统APK以及安装在SD卡上的APK。 首先,让我们了解什么是“获取apk”。在Android开发中,获取apk通常指的是通过编程方式访问设备上已安装应用的...
在Android 6.0(API级别23)及更高版本中,系统对存储访问进行了权限管理,因此获取外置SD卡路径前,需要确保在`AndroidManifest.xml`中添加了相应的权限: ```xml ``` 在Unity中,我们可以使用C#脚本来获取外置...
在Android系统中,获取SD卡(外部存储)信息是开发者常用的功能之一,这通常涉及到读取可用存储空间、总容量等信息。本DEMO提供了一种实现方式,确保了兼容性,可以在多种不同类型的手机上运行。下面我们将详细讨论...
1. **获取外部存储权限**:由于我们需要从外部存储(如内存卡)读取APK文件,所以在AndroidManifest.xml中需要声明`READ_EXTERNAL_STORAGE`权限。 2. **查找并解析APK文件**:使用File对象定位到内存卡上的APK文件...
总之,通过反射机制,开发者可以在不依赖特定厂商实现的情况下,获取并管理Android设备上的各种存储路径,包括内置存储、SD卡和OTG设备,同时获取到它们的空间信息,以适应不同的设备环境。在`MountRootManagerRf....
至于"获取手机应用信息"这个子文件,可能是包含具体实现的Java代码,通过分析这个代码,我们可以更详细地了解如何在Android中获取和管理SD卡上的应用信息。 总之,理解和掌握这些知识点对于任何希望在Android平台上...
1. **获取SD卡上的APK文件**:Android提供`Environment.getExternalStorageDirectory()`方法来获取SD卡的根目录。接着,可以使用`File`类的构造函数来创建指向APK文件的`File`对象,例如`new File(Environment....
1. **获取存储路径**:使用`Context.getExternalFilesDirs()`方法可以获取到设备的所有外部存储路径,包括内部SD卡和所有外部SD卡。 2. **计数检查**:如果返回的存储路径数组长度大于1,那么表示设备至少有一个...
1. **外部存储访问**:在Android系统中,应用程序通常需要特定权限来访问SD卡,因为这是用户存储个人数据的地方。了解如何获取和使用这些权限是开发此类工具的关键。 2. **文件扫描算法**:实现文件扫描功能需要...
1. **获取外置apk路径**:你需要知道外置apk文件在设备存储中的具体位置,通常在SD卡或者其他可移动存储中。 2. **创建DexClassLoader实例**:使用以下代码创建类加载器实例: ```java File apkFile = new File...
卡刷是一种将第三方固件或者修改过的系统组件直接写入设备内部存储的方式,通常需要设备已经解锁Bootloader。卡刷SuperSU可以将root权限集成到系统中,使得系统启动时即可获得root权限,无需每次手动开启应用。 ...
总的来说,APK文件图标查看器是一个实用的小工具,它为Android开发者和用户提供了便捷的方式来查看APK的图标,同时也能获取SD卡上的文件信息。结合Visual Studio 2008的强大开发能力,这款工具的使用体验得到了保障...
标题“手机apk拷贝到sdcard”涉及到的是Android操作系统中移动应用程序(APK)的存储管理,特别是如何将APK文件从设备的内部存储移动到外部可移除的SD卡上。这一操作对于用户来说,可能是因为他们希望节省手机内部...
关于SD卡文件管理,Android提供了`Environment.getExternalStorageDirectory()`来获取SD卡的根目录,可以结合`Context`的`getExternalFilesDir()`或`getExternalCacheDir()`方法获取特定应用的文件夹。例如,如果你...
在Android中,我们可以将文件保存到外部存储(如SD卡),但需要确保用户已经赋予了写入外部存储的权限。例如,上面的`saveToFile`方法可以这样实现: ```java private void saveToFile(byte[] bytes) { File ...
在Android操作系统中,将应用程序安装到SD卡上是一种节省手机内置存储空间的有效方法。这个过程涉及到Android系统的存储管理机制,以及一些系统级别的设置。本文将详细介绍如何在Android设备上实现软件向SD卡的安装...
3. **安装过程**:APK安装器通常提供简单的操作界面,用户只需找到存储在设备或SD卡上的APK文件,点击安装即可。APK安装器.exe可能是Windows版的工具,用于在PC上管理Android设备的APK安装。 4. **更新与卸载**:...
有很多第三方应用如"APK Extractor",可以直接在手机上操作,方便地备份已安装的应用到存储卡或者通过邮件发送。 3. 通过设置开启备份功能: 在Android系统中,部分版本提供了应用数据备份的功能,可以在设置中...