fad*_*bee 3 flags android apk android-studio android-studio-3.0
我已经通过3.0.0-rcX(来自Canary频道)到达Android Studio 3.0.0(来自稳定频道).
当我启动一个全新的应用程序并构建它时,以下代码(在应用程序内)显示已设置FLAG_TEST_ONLY标志.
Log.e(TAG, "ApplicationInfo: " + (getApplicationInfo().flags & ApplicationInfo.FLAG_TEST_ONLY));
10-31 09:54:05.226 16129-16129/com.example.dummy E/MainActivity: ApplicationInfo: 256
Run Code Online (Sandbox Code Playgroud)
该应用程序的清单是:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.dummy">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
该标志使设备策略控制器无法安装它:使用设备策略控制器在后台升级应用程序
为什么设置此标志,以及如何阻止它被设置?
前几天我一头扎进去了.根据我的测试,仅当您从Android Studio运行应用程序时才会添加此标志.不幸的是,APK文件名没有暗示问题.而且,尽管有文档,这个APK 只能在Android Studio中使用 - 我特意试图通过adb它来安装它,它应该可以工作,但不是.
如果您以其他方式构建APK,则不应添加该标志.具体来说,我使用了assembleReleaseGradle任务.我希望Android Studio中的"Build APK(s)"菜单选项也能正常工作.
鉴于Instant Run和其他潜在的恶作剧,Android Studio可能会为直接运行的版本而不是其他版本,我对他们添加此标志并不感到惊讶.就个人而言,我希望有一个更明确的选择,可以选择退出所有这些恶作剧(也许这个标志),因为我是那些希望我从IDE运行的应用程序与我的用户运行的应用程序相同的怪人之一.
FWIW,我在这篇博文中有更多的背景知识.
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |