计算Android设备上的软件包版本
我正试图找到一种更简单、更自动化的方式来查看当前安装在Android设备上的apk的所有版本号,包括用户安装的版本号和预装的版本号 目前我一直在这样做: a。版本在apk中 Bapk通常位于/system/app中 Capk name的包名可以在/data/system/packages.xml中找到 D棘手的部分是,应用程序名称通常位于apk文件中的字符串资源中,如strings.xml默认名称 E这也可以使用API的PackageManager系列在android SDK中完成 这是非常耗时的,我为很多很多设备做这件事。我只是在想,必须有一个更简单的方法,然后我如何去做计算Android设备上的软件包版本,android,android-sdk-tools,Android,Android Sdk Tools,我正试图找到一种更简单、更自动化的方式来查看当前安装在Android设备上的apk的所有版本号,包括用户安装的版本号和预装的版本号 目前我一直在这样做: a。版本在apk中 Bapk通常位于/system/app中 Capk name的包名可以在/data/system/packages.xml中找到 D棘手的部分是,应用程序名称通常位于apk文件中的字符串资源中,如strings.xml默认名称 E这也可以使用API的PackageManager系列在android SDK中完成 这是非常耗时
感谢您的帮助,一如既往,非常感谢。您唯一有效的方法是: 这也可以使用API的PackageManager系列在android SDK中完成 其余的。。。我不知道你为什么认为它能工作,更不用说可靠地工作了。考虑到versionCode尤其不需要翻译,您怎么会认为人们会使用字符串资源来实现这些功能 这非常耗时
调用PackageManager、迭代已安装的应用程序并检索版本信息的代码需要几毫秒的时间。我做到了,哇。。。。。我将此代码发布给需要查找设备上所有内容的PackageName和版本名的任何其他人
import java.util.List;
import android.app.Activity;
import android.content.pm.PackageInfo;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.util.Log;
import android.widget.TextView;
public class main extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String bldr = new String();
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
bldr = "Total packages --> " + packs.size() + "\n";
for(int i=0;i<packs.size();i++){
PackageInfo p = packs.get(i);
bldr = bldr + "<" + p.packageName + ">" + "\t" + "v" + p.versionName + "\n";
}
TextView tv = new TextView(this);
tv.setMaxLines(packs.size() + 2);
tv.setMovementMethod(new ScrollingMovementMethod());
tv.setText(bldr);
setContentView(tv);
Log.w("com.tmobile.pr.showAllPackages", bldr.toString());
}
}
对于版本号,您是指应用程序清单中的版本代码和版本名称?