当前位置: 首页 > news >正文

做网站竞价怎么找客户推广软件的app

做网站竞价怎么找客户,推广软件的app,为什么不建议做运维,图片外链网站获取方式 SharedPreferences一个轻量级的存储类适合用于保存软件配置参数,实际上是用xml文件存放数据&#xff0c;文件存保存在/data/data/<package name>/shared_prefs/获取SharedPreferences有以下三种方式ContextWrapper.getSharedPreferences(String name, int mode)…

 

获取方式

SharedPreferences一个轻量级的存储类适合用于保存软件配置参数,实际上是用xml文件存放数据,文件存保存在/data/data/<package name>/shared_prefs/
获取SharedPreferences有以下三种方式
  1. ContextWrapper.getSharedPreferences(String name, int mode)
  2. PreferenceManager.getDefaultSharedPreferences(Context context)
  3. Activity.getPreferences(int mode)
第一种方式是最常用的,指定偏好文件的名称,名称中不需要包含后缀xml,同时指定偏好文件的作用范围mode。
第二种获取默认的偏好文件, 是使用默认的名称(应用包名+_preferences)和默认的Mode返回(Context.MODE_PRIVATE),源码参考:
public static SharedPreferences getDefaultSharedPreferences(Context context) {
return context.getSharedPreferences(getDefaultSharedPreferencesName(context),
getDefaultSharedPreferencesMode());
}public static String getDefaultSharedPreferencesName(Context context) {
return context.getPackageName() + "_preferences";
}private static int getDefaultSharedPreferencesMode() {
return Context.MODE_PRIVATE;
}
View Code
第三种是Activity特有的,实际上是使用Activity的类名作为偏好文件的名称,意味着同样的类获取到的是同一个偏好文件,不同的类获取到不同的偏好文件,源码参考:
public SharedPreferences getPreferences(int mode) {
return getSharedPreferences(getLocalClassName(), mode);
}/**
* Returns class name for this activity with the package prefix removed.
* This is the default name used to read and write settings.
*
* @return The local class name.
*/
@NonNull
public String getLocalClassName() {
final String pkg = getPackageName();
final String cls = mComponent.getClassName();
int packageLen = pkg.length();
if (!cls.startsWith(pkg) || cls.length() <= packageLen
|| cls.charAt(packageLen) != '.') {
return cls;
}
return cls.substring(packageLen+1);
}
View Code

 

MODE类型

mode主要以下值:
MODE_PRIVATE 文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
MODE_APPEND 模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。,注意这个在SharePreference中其实是没有效果的,以下会论证。
MODE_ENABLE_WRITE_AHEAD_LOGGING
以下三个由于不安全,已被遗弃,官方不推荐使用
MODE_WORLD_READABLE 表示当前文件可以被其他应用读取
MODE_WORLD_WRITEABLE 表示当前文件可以被其他应用写入。
MODE_MULTI_PROCESS 多进程的访问
注:可以组合使用Context.MODE_APPEND+Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE

导出文件

下面补充下查看、导出偏好文件或者数据库文件的方法
1、打开Android Sudio ---> Tools ---> Android ----> Android Device Monitor ----> File Explore
此时应该能看到data目录,但是点开没有任何东西,这是因为android每个文件或文件夹都是有权限控制的,在File Explore窗口中有一栏为Permissions就是说明对该文件或文件夹的权限,如果权限满足应该如下图:
2、在Android Studio ---> Terminal终端窗口输入
(1) adb shell,注意如果没有配置环境变量,需要进入到sdk下的platform-tools下执行
(2) su,这是获取管理员权限
(3)chmod 777 /data,这是对data文件夹drwxrwxrwx权限,同理如果/data/data/应用包名,这个路径中有权限不是drwxrwxrwx权限的,使用该命令授权。这样之后就能看到应用的缓存文件了。
3、导出文件时,如果使用File Explore中的Pull a file from device会提示Failed to pull selection: open failed: Permission denied。不能通过这种方式导出到本地电脑上,有另外的方式可以导出文件,在adb shell中使用
cp /data/data/my.test/shared_prefs/pre1.xml /mnt/sdcard
将指定文件导出到/mnt/sdcard/,这个路径就是手机的根目录,然后就可以导出到电脑查看了。

其他

MODE_PRIVATE 和 MODE_APPEND 比较:
可能会理解MODE_PRIVATE 是 覆盖添加,MODE_APPEND 是追加添加,但是事实上在SharePreference中MODE_APPEND 是无效的,
SharedPreferences preferences1 = getSharedPreferences("pre1", MODE_PRIVATE);
SharedPreferences preferences2 = getSharedPreferences("pre2", MODE_PRIVATE | MODE_APPEND);
for (int i = 0; i < 10; i++) {preferences1.edit().putString("aaa", "aaa" + i).commit();preferences2.edit().putString("aaa", "aaa" + i).commit();
}preferences1.edit().putString("bbb", "bbb").commit();
preferences2.edit().putString("bbb", "bbb").commit();preferences1.edit().putString("aaa", "aaa" + "?").commit();
preferences2.edit().putString("aaa", "aaa" + "?").commit();

 

结果导出pre1.xml和pre2.xml比较, 两个文件完全一致:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map><string name="aaa">aaa?</string><string name="bbb">bbb</string>
</map>
但是在FileOutputStream操作中,却不一样:
write("a.txt", Context.MODE_PRIVATE, "aaaaaaaaaaaaaaaaaaaaa");
write("a.txt", Context.MODE_PRIVATE, "bbbbbbbbbbbbbbbbbbbbb");
write("b.txt", Context.MODE_APPEND, "aaaaaaaaaaaaaaaaaaaaa");
write("b.txt", Context.MODE_APPEND, "bbbbbbbbbbbbbbbbbbbbb");private void write(String name, int mode, String text) {
try {
FileOutputStream outStream = openFileOutput(name, mode);
outStream.write(text.getBytes());
outStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
View Code
文件a.xml中的内容是: bbbbbbbbbbbbbbbbbbbbb
文件b.xml中的内容是:aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbb
说明在FileOutputStream 文件操作中,MODE_PRIVATE是覆盖添加,MODE_APPEND是追加添加。

转载于:https://www.cnblogs.com/jogickis/p/6845944.html

http://www.lbrq.cn/news/2464381.html

相关文章:

  • 吉工之家找工作建筑工作seo公司是做什么的
  • wordpress4.8seo关键词
  • 广州网站公司推荐uc浏览器关键词排名优化
  • 北京南站到北京站怎么走推广点击器
  • 南城网站优化公司seo研究学院
  • 手机网站首页设计link友情买卖
  • 百度一直不收录网站互联网推广平台有哪些公司
  • 中国免费域名申请网站百度推广怎么做最好
  • 郑州网站权重互联网搜索引擎有哪些
  • 武汉网站推广技巧安卓神级系统优化工具
  • 企业网站管理系统项目文档站长统计免费下载
  • 帮公司制作一个网站是如何收费广州seo全网营销
  • 公司简介在哪里查询软件优化
  • 邢台网站建设免费做网站排名电商最好卖的十大产品
  • 免费网站推广渠道百度指数名词解释
  • 网站开发能赚多少钱收录批量查询
  • 手机网站 触屏关键词seo排名怎么做的
  • jsp 做网站还是php网络营销软文范例500
  • 网站的开发和建设有什么区别外贸网站优化公司
  • 企业网站优化公司公司员工培训内容有哪些
  • 高端网站建设服务最新新闻播报
  • 外贸建站独立站怎么做网络营销
  • 网站建设完成后怎么上传服务器防恶意点击软件
  • 红色色系做网站的配色sem推广和seo的区别
  • 云阳网站建设百度搜索关键词统计
  • cms网站开发网站域名解析
  • 广西城乡建设名网站2022网络热词30个
  • 营销赚钱网站东莞网站建设推广平台
  • 短网址转换长网址seo优化关键词排名优化
  • 青海wap网站建设公司百度自媒体怎么注册
  • 高性能网络DPDK、RDMA、XDP初探
  • 渲染篇(二):解密Diff算法:如何用“最少的操作”更新UI
  • 6.数组和字符串
  • python面向对象编程详解
  • 广州 VR 安全用电技术:工作原理、特性及优势探析​
  • [linux]Haproxy七层代理