首先,看到这个名字,第一反应就是我们必须对apk进行正式的签名:
第一步:做一个正式的签名
第二步:将签名的keyAlias keyPassword storePassword storeFile信息配置到build.gradle下:
signingConfigs {
release {
//jks文件放在项目文件的最外层,和app文件夹在同一层
storeFile file('../quantum.jks')
storePassword 'sms123456'
keyAlias 'smsAlias'
keyPassword 'sms123456'
}
}
buildTypes {
release {
//必须添加这句话 开启调试模式
debuggable true
minifyEnabled false
//正式签名的引用
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
第三步:同步项目后,选择as工具右边的gradle,编译正式的资源,点击红色的部分 如下图
第四步:同样是在gradle下,开始安装正式apk,点击红色的部分(备注:installRelease一般在install 下)如下图
第五步:开始调试
将程序运行起来,然后需要的地方打断点,最后运行
即可:最后说明 调试一定要和log的方式结合起来,这样的方式效果最佳
快速吊起第三方app:
通过意图:intent
intent.setClassName(包名,启动页面);
或者intent.setComponse();
最简单快速的方法:
public void openActivity() {
// 获取包管理器
PackageManager manager = getPackageManager();
// 指定入口,启动类型,包名
Intent intent = new Intent(Intent.ACTION_MAIN);//入口Main
intent.addCategory(Intent.CATEGORY_LAUNCHER);// 启动LAUNCHER,跟MainActivity里面的配置类似
intent.setPackage(appName);//包名
//查询要启动的Activity
List<ResolveInfo> apps = manager.queryIntentActivities(intent, 0);
if (apps.size() > 0) {//如果包名存在
ResolveInfo ri = apps.get(0); // //获取包名
String packageName = ri.activityInfo.packageName; //获取app启动类型
String className = ri.activityInfo.name; //组装包名和类名
ComponentName cn = new ComponentName(packageName, className); //设置给Intent
intent.setComponent(cn); //根据包名类型打开Activity
startActivity(intent); } else { Toast.makeText(this, "找不到包名;" + appName, Toast.LENGTH_SHORT).show();
}
}