在本文中,您将会了解到关于Androidapk安装的几种方法的新资讯,同时我们还将为您解释androidapk安装流程的相关在本文中,我们将带你探索Androidapk安装的几种方法的奥秘,分析and
在本文中,您将会了解到关于Android apk 安装的几种方法的新资讯,同时我们还将为您解释android apk安装流程的相关在本文中,我们将带你探索Android apk 安装的几种方法的奥秘,分析android apk安装流程的特点,并给出一些关于Admob 中没有广告配置错误代码 3测试广告和直播广告在调试 apk 中显示,但未在签名 apk 中显示、Android APK:使用 Android Studio 调试 APK、android – apk(.apk)和app bundle(.aab)之间的区别、android 预置 apk,覆盖原生 apk的实用技巧。
本文目录一览:- Android apk 安装的几种方法(android apk安装流程)
- Admob 中没有广告配置错误代码 3测试广告和直播广告在调试 apk 中显示,但未在签名 apk 中显示
- Android APK:使用 Android Studio 调试 APK
- android – apk(.apk)和app bundle(.aab)之间的区别
- android 预置 apk,覆盖原生 apk
Android apk 安装的几种方法(android apk安装流程)
1. 使用 linux 命令安装:
apk 事先保存在 sdcard 上面,如果安装不成功,可能权限不够,chmod 777 一下,问题就解决了。
try {
String cmd = "pm install -r sdcard/TestStartActivity_sig2.apk";
Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2. 使用 adb 命令安装。
am start -n 包名 / Activity 所在包名及类名
adb shell am start -n com.liusl.test/com.liusl.test.MainActivity
3. 使用发送 Intent 消息打开 apk 安装程序
public void installApk(String saveFileName) {
File apkfile = new File(saveFileName);
if (!apkfile.exists()) {
Log.i(TAG, "installApk..file not exist!" + apkfile);
return;
}
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.parse("file://" + apkfile.toString()),"application/vnd.android.package-archive");
mContext.startActivity(i);
}
4. 静默安装:安装过程中没有任何提示的安装
[1] 重写 pacakgemanager 的相关类
IPackageDateObserver.java ,IPackageDeleteObserver.java,IPackageInstallObserver.java,IPackageMoveObserver.java,IPackageStateObserver.java,PackageManager.java
[2] 注册消息接收类
private static BroadcastReceiver mPackageInstallReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(UpdateManager.PACKAGE_INSTALL_SUCC)) {
Log.i(TAG, " receive .PACKAGE_INSTALL_SUCC");
} else {
Log.i(TAG, " receive .PACKAGE_INSTALL_FAILED.");
}
}
};
[3] 安装 apk 发送消息
private boolean installApkDefault(Context context, String fileName, String packageName) {
Log.d(TAG, "installApkDefault:" + packageName + ",fileName:" + fileName);
File file = new File(fileName);
int installFlags = 0;
if (!file.exists())
return false;
installFlags |= PackageManager.INSTALL_REPLACE_EXISTING;
PackageManager pm = context.getPackageManager();
try {
IPackageInstallObserver observer = new MyPakcageInstallObserver(context, fileName,packageName);
Log.i(TAG, "installFlags:" + installFlags + "packagename:" + packageName);
pm.installPackage(Uri.fromFile(file), observer, installFlags, packageName);
return true;
} catch (Exception e) {
Log.e(TAG, "installApkDefault fail ;exception: " + e.getMessage());
}
return false;
}
private class MyPakcageInstallObserver extends IPackageInstallObserver.Stub {
Context cxt;
String filename;
String pkname;
public MyPakcageInstallObserver(Context c, String filename, String packagename) {
this.cxt = c;
this.filename = filename;
this.pkname = packagename;
}
@Override
public void packageInstalled(String packageName, int returnCode) {
Log.i("MyPakcageInstallObserver", "returnCode = " + returnCode);// 返回1代表安装成功
if (pkname != null && pkname.equals(packageName)) {
Intent it = new Intent();
it.putExtra("install_returnCode", returnCode);
it.putExtra("install_packageName", packageName);
if (returnCode == 1) {
it.setAction(UpdateManager.PACKAGE_INSTALL_SUCC);
} else {
it.setAction(UpdateManager.PACKAGE_INSTALL_FAILED);
File f = new File(filename);
if (f.exists()) {
f.delete();
}
}
cxt.sendBroadcast(it);
}
}
}
Admob 中没有广告配置错误代码 3测试广告和直播广告在调试 apk 中显示,但未在签名 apk 中显示
如何解决Admob 中没有广告配置错误代码 3测试广告和直播广告在调试 apk 中显示,但未在签名 apk 中显示
测试广告和生产广告在调试 apk 中显示,但在应用签名时不显示。在 Android 中使用了 2 天。 得到以下回复。
"Code": 3,"Message": "No ad config.","Domain": "com.google.android.gms.ads","Cause": "null","Response Info": {
"Response ID": "null","Mediation Adapter Class Name": "","Adapter Responses": []
}
实施 ''com.google.android.gms:play-services-ads:19.8.0'' - 我当前的版本。
Android APK:使用 Android Studio 调试 APK
如何解决Android APK:使用 Android Studio 调试 APK?
我正在使用 Android Studio 调试 APK
我在 MainActivity - 我已经反编译了 APK 以提供 .java 文件
public final class MainActivity extends AppCompatActivity {
public final native boolean checkPassword(String str);
/* access modifiers changed from: protected */
@Override // androidx.activity.ComponentActivity,androidx.core.app.ComponentActivity,androidx.appcompat.app.AppCompatActivity,androidx.fragment.app.FragmentActivity
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_main);
System.loadLibrary("ferriswheel");
}
public final void checkHandler(View view) {
Intrinsics.checkParameterIsNotNull(view,"view");
View findViewById = findViewById(R.id.password_input);
Intrinsics.checkExpressionValueIsNotNull(findViewById,"findViewById<EditText>(R.id.password_input)");
if (checkPassword(((EditText) findViewById).getText().toString())) {
startActivity(new Intent(this,ferriswheel.class));
} else {
Toast.makeText(this,"Incorrect!",1).show();
}
}
}
我不确定这里发生了什么 - checkPassword
部分 - 它在检查什么?如果我设置了一个断点,它在我运行应用程序时似乎不会被击中
感谢任何指导
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
android – apk(.apk)和app bundle(.aab)之间的区别
最近谷歌推出了一个新的功能应用程序包,这是一个非常类似于APK的概念,除了它的灵活性和架构差异.
我已经阅读了很多博客/文章,以了解应用程序包如何在设备中与APK文件进行比较.
从Google Play商店开始,应用套件的实际内部工作流程及其在Android设备上的工作原理是什么?
解决方法:
App Bundles是一种发布格式,而APK(Android应用程序PacKage)是最终将安装在设备上的打包格式.
App Bundles使用bundletool创建一组APK. (.apks)
这可以被提取,并且可以将基础和配置拆分以及潜在的动态特征模块部署到设备.
依赖项看起来像这样:
App Bundle的内容看起来像这样:
有关App Bundles的更多信息,请参见available here.
android 预置 apk,覆盖原生 apk
一、如何将带源码的 APK 预置进系统?
1) 在 packages/apps 下面以需要预置的 APK 的 名字创建一个新文件夹,以预制一个名为 RecordingCar 的 APK 为例
2) 将 的 Source code 拷贝到 RecordingCar 文件夹下,删除 /bin 和 /gen 目录
3) 在 RecordingCar 目录下创建一个名为 Android.mk 的文件,内容如下:
OCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
LOCAL_PACKAGE_NAME := Recorderingcar
LOCAL_JAVA_LIBRARIES := telephony-common // 所需要的库文件,没有的话,可以不写
include $(BUILD_PACKAGE)
4) mtk 打开文件 build/target/product/${Project}.mk (其中 ${Project} 表示工程名)
将 Recorderingcar 添加到 PRODUCT_PACKAGES 里面。
如果是高通平台,可以在 device,或者 build 的 mkfile 文件加入编译选项。
另外一种方法就是 mk 文件中将 LOCAL_MODULE_TAGS 属性值设为:= eng user debug,这样不管编译什么版本,该 apk 都可以编译进去。
5) make clean 然后重新编译整个工程。
二、如何将无源码的 APK 预置进系统?
1) 在配置文件中,如 device/qcom/project 下加入 3rdApp 文件夹,在该文件夹下创建 app,lib 和 Android.mk 文件。
2) 将 Recorderingcar.apk 放到 app 目录 下面
3) 将库文件放到 lib 目录下
4) 在修改 Android.mk,文件内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := Test
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
4) 在 mk 文件中,将 lib 目录下的库文件 copy 到 system/lib 目录下
其余的步骤和上面类似。
如果预置的同时,要覆盖原生 apk,则关于 android.mk 中的 LOCAL_OVERRIDES_PACKAGES 需要说明一下,此变量可以使其他的模块不加入编译,
如:需要预置第三方的 Launcher 启动器,则在预置 apk 的 mk 文件中加入:
LOCAL_OVERRIDES_PACKAGES := Luancher2
这样系统就不会将原生的 Launcher 编译进去,当然也可以在 mk 文件中编译开关中将相应 Launcher 注释掉。
KK-android4.4 版本上应用权限无法获取的问题是预置 apk 以后发现原因查了下,发现现在增加了一个 priv-app 的文件夹,对于 android:protectionLevel="signature|system" 的权限,并且签名不一致的情况下,建议放在
priv-app 下面,否则 PackageManager 会拒绝分配给你权限。(有兴趣的同学可以参见:PackageManagerService 的 grantSignaturePermission 方法)
加入 priv-app 方法:在 Android.mk 中增加 LOCAL_PRIVILEGED_MODULE := true
我们今天的关于Android apk 安装的几种方法和android apk安装流程的分享已经告一段落,感谢您的关注,如果您想了解更多关于Admob 中没有广告配置错误代码 3测试广告和直播广告在调试 apk 中显示,但未在签名 apk 中显示、Android APK:使用 Android Studio 调试 APK、android – apk(.apk)和app bundle(.aab)之间的区别、android 预置 apk,覆盖原生 apk的相关信息,请在本站查询。
本文标签: