相关疑难解决方法(0)

获取Android .apk文件VersionName或VersionCode没有安装apk

如何在下载后从AndroidManifest.xml文件以编程方式获取apk的版本代码或版本名称,而无需安装它.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="xxx.xx.xxx"
    android:versionCode="1"
    android:versionName="1.1" >
Run Code Online (Sandbox Code Playgroud)

例如,我想检查是否在我的IIS服务上安装了新版本,然后将其安装在设备上,如果不是新版本我不想安装它.

android android-manifest apk

171
推荐指数
7
解决办法
11万
查看次数

在res/layout中提取Android .apk并读取XML文件的内容

我正在尝试对现有的Android应用程序进行逆向工程,并了解如何构建特定的UI.我发现我可以将apk重命名为zip并查看一些已编译的源代码.res/layout目录中填充了定义UI的所有xml文件,但是虽然它们具有xml扩展名,但它们不是XML格式.有没有将这些文件转换回基于文本的标记?

java android

30
推荐指数
2
解决办法
6万
查看次数

列出已安装包的意向过滤器

我想列出手机上安装的软件包的活动意图过滤器.这只是为了学习体验,我想了解哪些应用程序可以使用隐式意图启动,以及如何设置意图过滤器.

Google在http://developer.android.com/guide/appendix/g-app-intents.html上提供了他们提供的应用程序表.我想为其他应用程序创建一个类似的列表.

我可以使用PackageManager并在代码中挖掘这些信息吗?有谁知道现有的应用程序可以做到这一点?有人能指出我现有的例子来做我想要的吗?

很抱歉,如果这是类似问题的重复,例如列出应用程序的活动和intent-filters?Android - 如何获取所有可用的意图过滤器列表?

android android-intent

22
推荐指数
4
解决办法
1万
查看次数

从另一个应用程序调用应用程序

在这个应用程序我正在开发我需要加载/调用已安装在手机上的另一个应用程序.这是一个仅供我个人使用的应用程序,因此无需检查是否安装了其他应用程序 - 我知道它是.

我已经用谷歌搜索了这个问题几个小时,但我发现任何有效的东西.主要是因为查找包名和类名的指南非常糟糕.

通过cmd和adb我能够找到关于我想要调用的应用程序的信息是:package:/data/app/com.soundcloud.android-1.apk=com.soundcloud.android(这正是它的内容)在cmd窗口说.)

我试过这样的事情:

Intent i = new Intent();
i.setClassName("/data/app/com.soundcloud.android-1.apk", "com.soundcloud.android");
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

但我的应用程序只是崩溃了.我使用上面的代码,因为有人说这可以调用一个应用程序:

Intent i = new Intent();
i.setClassName("<package_name>","<Class Name(with package name)>");
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

有谁知道要写什么?

PS:我自己的应用程序不需要任何有关被叫应用程序中发生的事情的信息.

android phone-call android-intent

20
推荐指数
1
解决办法
3万
查看次数

PHP:如何从android .apk文件获取版本?

我正在尝试创建一个PHP脚本,以从Android APK文件中获取应用程序版本.从APK(zip)文件中提取XML文件然后解析XML是一种方法,但我想它应该更简单.像PHP手册,例如#3.任何想法如何创建脚本?

php xml android version apk

19
推荐指数
2
解决办法
3万
查看次数

如何从Android环境中的Android应用程序中的apk文件获取应用程序或包信息

是否可以从apk文件获取有关包或应用程序的任何信息而无需在Android环境中安装它?

android apk

18
推荐指数
3
解决办法
4万
查看次数

Android:将标准XML转换为Android二进制XML格式(AXML)

我想将明文AndroidManifest.xml文件转换为Android用于将其打包到最终APK中的二进制格式.

我想用Java做这个,因为我需要在android设备上做这个(这就是为什么这个问题不是重复的原因:如何将XML转换为Android二进制XML.我知道你可以使用AAPT,但我需要一个java方法)

有很多工具可以将二进制xml解码为可读文件,但没有关于如何做相反的事情,这就是我想要的.

任何关于如何实现这一点的信息或提示都表示赞赏.

java android android-manifest

18
推荐指数
1
解决办法
2920
查看次数

以编程方式从android中的manifest.xml检索权限

我必须以编程方式从android应用程序的manifest.xml中检索权限,我不知道该怎么做.

在这里阅读了这篇文章,但我对答案并不完全满意.我想android API中应该有一个类允许从清单中检索信息.

谢谢.

java permissions android android-manifest

17
推荐指数
2
解决办法
1万
查看次数

从apk文件获取minSdkVersion和targetSdkVersion

我想获得的价值观minSdkVersion,并targetSdkVersion从存储在设备上的APK.此处讨论了获取其他详细信息,但该类中 仅提供了targetSdkVersionApplicationInfo.minSdkVersion除了解压apk文件并阅读AndroidManifest.xml之外,还能获得吗?

android apk android-package-managers

13
推荐指数
4
解决办法
7361
查看次数

即使使用InputStream,如何获取APK文件的可靠且有效的清单内容?

背景

我想获取有关 APK 文件(包括拆分的 APK 文件)的信息,即使它们位于压缩的 zip 文件中(无需解压缩它们)。就我而言,这包括各种内容,例如包名称、版本代码、版本名称、应用标签、应用图标,以及它是否是拆分的 APK 文件。

请注意,我想在 Android 应用程序中完成所有操作,而不是使用 PC,因此可能无法使用某些工具。

问题

这意味着我不能使用 getPackageArchiveInfo函数,因为该函数需要 APK 文件的路径,并且仅适用于非拆分 APK 文件。

简而言之,没有框架函数可以做到这一点,所以我必须找到一种方法,通过进入压缩文件,使用 InputStream 作为输入在函数中解析它。

网上有各种解决方案,包括 Android 之外的解决方案,但我不知道有一种稳定且适用于所有情况的解决方案。许多甚至可能适用于 Android(例如这里),但可能无法解析并且可能需要文件路径而不是 Uri/InputStream。

我发现并尝试过的

我找到了这个在 StackOverflow 上,但遗憾的是根据我的测试,它总是生成内容,但在极少数情况下它不是有效的 XML 内容。

到目前为止,我发现解析器无法解析这些应用程序包名称及其版本代码,因为输出的 XML 内容无效:

  1. com.farproc.wifi.analyzer 139
  2. com.teslacoilsw.launcherclientproxy 2
  3. com.hotornot.app 3072
  4. android 29(即“Android System”系统应用程序本身)
  5. com.google.android.videos 41300042
  6. com.facebook.katana 201518851
  7. com.keramidas.TitaniumBackupPro 10
  8. com.google.android.apps.tachyon 2985033
  9. com.google.android.apps.photos 3594753

使用XML 查看器XML 验证器,以下是这些应用程序的问题:

  • 对于#1,#2,我得到了一个非常奇怪的内容,从<mnfs.
  • 对于#3,它不喜欢“&” <activity theme="resourceID 0x7f13000b" label="Features & Tests" ... …

xml parsing android android-manifest apk

10
推荐指数
1
解决办法
693
查看次数