第一步、先制做一个有我们需要的图片资源的APK
如下图,这里有个about_log.png,我们需要生成apk文件。
生成的apk文件如果你不到项目的文件夹里面去取apk,想通过命令放到手机里面去可以快速用下面命令
1)、在手机里面通过包名找到apk路径,一定不要忘记有 -f
adb shell pm list package -f | grep com.example.testclassloader
得到如下结果
package:/data/app/com.example.testclassloader-2/base.apk=com.example.testclassloader
2)、把base.apk拉到本地然后改名字,命令如下
adb shell pull /data/app/com.example.testclassloader-2/base.apk testClassLoader.apk
3)、把testClassLoader.apk放到手机里面去,命令如下
adb shell push testClassLoader.apk /sdcard/
4)、去手机文件管理器里面找看是否有testClassLoader.apk文件
第二步、获取为安装apk包名的信息(假设前提不知道)
我们可以通过这个方法得到
public PackageInfo getPackageArchiveInfo(String archiveFilePath, int flags)
具体方法如下
/**
* 获取未安装apk的信息
* @param context
* @param apkPath apk文件的path
* @return
*/
private Map<String,String> getUninstallApkInfo(Context context, String apkPath) {
Map hashMap = new HashMap<String,String>();
PackageManager pm = context.getPackageManager();
PackageInfo pkgInfo = pm.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES);
if (null != pkgInfo) {
ApplicationInfo appInfo = pkgInfo.applicationInfo;
String pkgName = appInfo.packageName;//包名
hashMap.put(PKG_NAME, pkgName);
} else {
Log.d(TAG, "program don't get apk package information");
}
return hashMap;
}