使用adb shell清除应用程序数据
adb shell pm clear com.android.browser
Run Code Online (Sandbox Code Playgroud)
但是从应用程序执行该命令时
String deleteCmd = "pm clear com.android.browser";
Runtime runtime = Runtime.getRuntime();
try {
runtime.exec(deleteCmd);
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
问题:
虽然我已经给出了以下许可,但它不会清除用户数据也不会给出任何异常.
<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA"/>
Run Code Online (Sandbox Code Playgroud)
题:
如何使用adb shell清除应用程序数据?
这几天我搜索了很多关于"用户数据脚本不能正常工作"的话题,但直到现在,我还没有对我的案例有任何了解,请帮我弄清楚发生了什么,非常感谢!
根据AWS 用户数据说明:
在Amazon EC2中启动实例时,您可以选择将用户数据传递给可用于执行常见自动配置任务的实例,甚至可以在实例启动后运行脚本.
所以我试图在实例启动时传递我自己的用户数据,这是我的用户数据:
\#!/bin/bash
echo 'test' > /home/ec2-user/user-script-output.txt
Run Code Online (Sandbox Code Playgroud)
但是这条路径中没有文件: /home/ec2-user/user-script-output.txt
我检查过/var/lib/cloud/instance/user-data.txt
,该文件存在且与我的用户数据脚本相同.
我也检查了登录/var/log/cloud-init.log
,没有错误信息.
但是如果我用Amazon linux(2014.09.01)启动一个新实例,用户数据脚本就可以了,但是我不确定我的AMI(基于Amazon linux)和Amazon linux之间有什么区别.
我看到的唯一不同的部分是如果我运行这个脚本:
sudo yum list installed | grep cloud-init
Run Code Online (Sandbox Code Playgroud)
我的AMI:
cloud-init.noarch 0.7.2-8.33.amzn1 @ amzn-main
亚马逊linux:
cloud-init.noarch 0.7.2-8.33.amzn1已安装
我不确定这是什么原因?
如果您需要更多信息,我很高兴提供,请让我知道我自己的AMI发生了什么以及如何解决?
非常感谢
更新
刚刚从这篇文章中找到答案,
如果我在用户数据文件的顶部添加#cloud-boothook,它就可以了!
#cloud-boothook
#!/bin/bash
echo 'test' > /home/ec2-user/user-script-output.txt
Run Code Online (Sandbox Code Playgroud)
但仍不确定原因.
在使用EC2命令行API创建新的AWS EC2实例时,我将一些用户数据传递给新实例.
现在我怎么知道用户数据是否被执行了?
我该如何检查?
cloud-init用户数据对象的cloud-config部分中的指令顺序是什么.这对于避免种族类型的情况很重要.
我知道bootcmd在runcmd之前提前运行,但是有一个很好的列表,所有方法的顺序?
我在AWS上有一个EC2 ASG,我有兴趣存储用于实例化S3存储桶中任何给定实例的shell脚本,并将其下载并在实例化时运行,但即使我使用它也感觉有点摇摇晃晃a IAM Instance Role
,通过HTTPS传输,并使用 using 在S3存储桶中静止时加密脚本本身KMS
S3 Server Side Encryption
(因为该KMS
方法抛出了"未知"错误).
安装程序
IAM Instance Role
在实例化时分配给我的ASG中的任何实例,导致我的AWS信誉被作为ENV
vars 烘焙到实例中Instance-Init.sh
脚本上传并加密到S3,产生如下私有端点:https://s3.amazonaws.com/super-secret-bucket/Instance-Init.sh
在User-Data
田野里
User Data
在创建Launch Configuration
我希望我的ASG使用时,我在字段中输入以下内容:
#!/bin/bash
apt-get update
apt-get -y install python-pip
apt-get -y install awscli
cd /home/ubuntu
aws s3 cp s3://super-secret-bucket/Instance-Init.sh . --region us-east-1
chmod +x Instance-Init.sh
. Instance-Init.sh
shred -u -z -n 27 Instance-Init.sh
Run Code Online (Sandbox Code Playgroud)
以上做了以下内容:
aws-cli
)在创建将定位到许多Windows版本的应用程序时,确定应存储应用程序特定数据的位置的最佳做法是什么.特别:
我知道在Windows Vista上有一些环境变量,比如%APPDATA%,可以使用,但是Windows 7,Windows XP,Windows 98呢.
我的主要问题是,Microsoft是否有针对此的最佳实践文档,概述了不同类型数据(应用程序与用户)的文件系统位置以及在读取/写入这些位置时需要牢记的安全隐患?
我也感兴趣的是它不仅适用于.NET应用程序(可以使用ApplicationSettingsBase),还适用于非托管C/C++应用程序.
感谢Pax和Remus两位伟大的答案.我也找到了这个项目(特定于XP):
我正在尝试获取ec2"用户数据"脚本日志并将其指向Windows上的系统日志.在linux上,有人已经找到了解决方案:http: //alestic.com/2010/12/ec2-user-data-output
基本上你可以将/var/log/user-data.log发送到系统日志.我需要知道如何为Windows实例做这件事.我在我的Windows实例上找不到任何user-data.log.
在查看Facebook等网站如何存储个人资料图片时,网址似乎使用随机生成的值.例如,Google的Facebook页面的个人资料图片页面包含以下网址:
https://scontent-lhr3-1.xx.fbcdn.net/hprofile-xft1/v/t1.0-1/p160x160/11990418_442606765926870_215300303224956260_n.png?oh=28cb5dd4717b7174eed44ca5279a2e37&oe=579938A8
Run Code Online (Sandbox Code Playgroud)
但是,为什么不这样组织它:
https://scontent-lhr3-1.xx.fbcdn.net/{{ profile_id }}/50x50.png
Run Code Online (Sandbox Code Playgroud)
显然,这在存储和简单性方面会更容易.我错过了什么吗?谢谢.
C函数myfunc
在更大的数据块上运行.结果以块的形式返回给回调函数:
int myfunc(const char *data, int (*callback)(char *result, void *userdata), void *userdata);
Run Code Online (Sandbox Code Playgroud)
使用ctypes,myfunc
从Python代码调用并将结果返回给Python回调函数没什么大不了的.这个回调工作正常.
myfunc = mylib.myfunc
myfunc.restype = c_int
myfuncFUNCTYPE = CFUNCTYPE(STRING, c_void_p)
myfunc.argtypes = [POINTER(c_char), callbackFUNCTYPE, c_void_p]
def mycb(result, userdata):
print result
return True
input="A large chunk of data."
myfunc(input, myfuncFUNCTYPE(mycb), 0)
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法将Python对象(比如列表)作为用户数据提供给回调函数?为了存储结果块,我想做例如:
def mycb(result, userdata):
userdata.append(result)
userdata=[]
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将Python列表转换为c_void_p,以便可以在调用myfunc时使用它.
我目前的解决方法是将链表实现为ctypes结构,这非常麻烦.
我的应用程序就像很多应用程序 - 它有一个用户输入用户名和密码的登录屏幕,以及一个登录按钮我的应用程序也使用Core Data来保存大多数用户的业务对象,当然这是用户特定的.
我还有一个注销按钮,可以切换用户.这不会发生很多,但仍然是必要的).
现在,如果其他用户登录,我需要获取他的特定数据.但是我该怎么办呢?
我不想在他注销时删除用户的数据库,即使其他用户从设备登录也要保存.
我唯一能想到的是为每个通过Core Data保存的Entity添加一个"ownerId"属性,并在我获取对象时将此属性用作谓词.
但这似乎太乱了.