Leo*_*rak 15 java android android-manifest android-jobscheduler
我在某些设备上遇到了非常奇怪的情况(Nexus 5x与Android 7):当我清理数据并卸载它,然后用Studio安装时,应用程序不是单元化的,但它使用的是1月24日的数据!我尝试使用平板电脑进行相同的操作,但应用程序没有数据.
我已经多次重复这个过程,我清理了我的项目,重建了多次,它始终以24th january数据(数据库和共享首选项)开始.
我甚至尝试过adb shell并运行以清理数据:
bullhead:/data/data/lelisoft.com.lelimath.debug $ ls -l databases/
total 232
-rw-rw---- 1 u0_a259 u0_a259 98304 2017-02-05 11:03 lelimath.sqlite
-rw------- 1 u0_a259 u0_a259 16928 2017-02-05 11:03 lelimath.sqlite-journal
Run Code Online (Sandbox Code Playgroud)
我删除了它们,应用程序似乎是空的 - 直到我删除它并再次安装 - 1月24日又回来了.
这是一个如何开始的日志:
$ adb shell am start -n "lelisoft.com.lelimath.debug/lelisoft.com.lelimath.activities.DashboardActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Waiting for application to come online: lelisoft.com.lelimath.debug | lelisoft.com.lelimath.debug.test
I/InstantRun: Instant Run Runtime started. Android package is lelisoft.com.lelimath.debug, real application class is lelisoft.com.lelimath.helpers.LeliMathApp.
D/l.c.l.h.LeliMathApp: onCreate()
D/l.c.l.h.BalanceHelper: Current points balance: 234
Run Code Online (Sandbox Code Playgroud)
这是从调试器获取的数据库的位置:
/data/user/0/lelisoft.com.lelimath.debug/databases/lelimath.sqlite
Run Code Online (Sandbox Code Playgroud)
摇篮:
android {
signingConfigs {
}
compileSdkVersion 24
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "lelisoft.com.lelimath"
resValue 'string', 'app_name', 'LeliMath'
minSdkVersion 16
targetSdkVersion 24
versionCode 300
versionName '3.0.0'
resValue "string", "app_build_number", getDate();
resValue "string", "app_version", versionName;
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
applicationIdSuffix ".debug"
resValue 'string', 'app_name', 'LeliMath DEV'
}
}
Run Code Online (Sandbox Code Playgroud)
清单部分:
<application
android:name=".helpers.LeliMathApp"
android:allowBackup="true"
android:fullBackupContent="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning">
Run Code Online (Sandbox Code Playgroud)
我不希望工厂重置我的手机以摆脱这些数据.我不认为这个数据在我的构建中.我没有添加它们,安装时平板电脑中的应用程序是空的.
OBX*_*OBX 25
从Android 6.0(第23版)开始,Android推出了一项名为自动备份应用的新功能.它的作用是,它将应用程序的某些文件备份到用户的Google驱动器.它更新的文件列表包括:
getFilesDir()getDatabasePath(String)getDir(String, int)getExternalFilesDir(String)现在这一行manifest.xml对它负责:
android:allowBackup="true"
Run Code Online (Sandbox Code Playgroud)
如果您希望禁用备份,是否应选择将值设置为false.
此外,备份的数据是24小时间隔,Android 为此目的使用JobScheduler API,这意味着用户无法控制正在传输的数据的过程.
此外,自动备份的空间限制为25MB,并且不计入用户的空间配额.
此外,您可以设置为<include>和<exclude>某些类型的数据上传,例如您可能不需要保存用户机密数据,因此它也很灵活,有关此内容的更多信息,请访问:Android自动备份应用程序( 100天Google Dev)
<application ...
android:allowBackup="false"
android:fullBackupContent="false"
tools:replace="android:allowBackup"
</application>
Run Code Online (Sandbox Code Playgroud)
小智 6
简单地改变
android:allowBackup="true"
Run Code Online (Sandbox Code Playgroud)
到
android:allowBackup="false"
Run Code Online (Sandbox Code Playgroud)
如果您正在使用任何依赖项,则要覆盖此属性,请使用
tools:replace="android:allowBackup"
android:allowBackup="false"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9255 次 |
| 最近记录: |