VirtualApp中静默安装App
16lz
2021-01-26
最近学习看到android沙箱VirtualApp,小编资历尚浅,只是从VA运用的角度记录了下来如何在VA中静默安装app
VirtualApp github地址https://github.com/asLody/VirtualApp
1、将需要安装的app包放置在assets目录下
2、构建app安装需要的方法如下
private void installApp(String path) { if (checkRequiredPermission()) { try { File localFile = extractApp(path); //com.app.test是测试安装的app包名 AppInfoLite localAppInfoLite = new AppInfoLite("com.app.test", localFile.getAbsolutePath(), true); mPresenter.addApp(localAppInfoLite); } catch (Exception localException) { Toast.makeText(this, "安装失败", Toast.LENGTH_SHORT).show(); } } else { ActivityCompat.requestPermissions(this, new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"}, 200); } } private File extractApp(String path) { try { File localFile = new File(path); if (localFile.exists()) { localFile.delete(); } //提取的app文件,testApp是我测试的app名称 FileUtils.writeToFile(getAssets().open("testApp.apk"), localFile); return localFile; } catch (IOException localIOException) { } return null; } private boolean checkRequiredPermission() { return (Build.VERSION.SDK_INT < 23) || (ContextCompat.checkSelfPermission(this, "android.permission.WRITE_EXTERNAL_STORAGE") == 0); }
3、在需要安装App代码的地方调用installApp方法即可
String apkPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/testApp.apk"; //判断app是否已经安装 if (!VirtualCore.get().isAppInstalled("com.app.test")) { installApp(apkPath); }else{ Toast.makeText(this, "当前APP已经安装,请勿重复安装", Toast.LENGTH_SHORT).show(); }
更多相关文章
- EclipseSDK NDK Cygwin CDT 集成开发环境的搭建
- android 升级webview的方法
- 基于XMPP实现的Openfire的配置安装+Android客户端的实现
- android 兼容性测试
- windows 下 android 自动化测试环境搭建(appium+python)
- Android(安卓)开发 关于APP无法安装到Android模拟器上的问题
- 解决OPPO手机在Android(安卓)studio 环境下安装错误运行失败的问
- 利用drozer进行Andriod安全测试
- 解析json格式数据