SharePreferences 跨APK读写操作

来源:互联网 发布:关键词优化骗局 编辑:程序博客网 时间:2024/06/15 01:52

     SharePreferences 是Android帮助开发人员设计的超轻量级数据库,主要可以存储一些简单的设置,存储的数据类型只有8个基本数据类型,不能存放复杂的数据类型。但是对于移动终端来说这已经足够了。

    SharePreferences是以XML的方式保存数据,并且数据必须以键值对的形式存储。存储的XML文件的位置:/data/data/<package name>/shared_prefs。

   

(一)跨APK数据读取:

首先要保证创建的Sharepreferences文件为可读写模式,就是在A.apk中要保证Sharepreferences的属性为

      Context.MODE_WORLD_READABLE

或 Context.MODE_WORLD_WRITEABLE

或 Context.MODE_WORLD_READABLE|Context.MODE_WORLD_WRITEABLE

 

SharedPreferences sharedPreferences = this.getContext().getSharedPreferences("preferences", Context.MODE_WORLD_READABLE);

在B.apk中需要添加如下代码即可。

Context otherAppContext = createPackageContext("com.tim.sharedpreferences", Context.CONTEXT_IGNORE_SECURITY);SharedPreferences sharedPreferences = otherAppContext.getSharedPreferences("preferences", Context.MODE_WORLD_READABLE);


 

(二)跨APK数据写数据:

SharePreferences保存xml的位置为/data/data下,一般情况下只能获得读的权限,没有写的权限。

但是就这一点小难度,根部不足以阻止我们前进的脚步。简单添加两句代码即可搞定。

只需要在修改两个工程的Manifest文件,增加相同的sharedUserId就可以了。两个具有相同sharedUserId的 APK会运行在一个进程中,这样不仅可以共享数据,甚至可以共享图片资源。

    package="com.options.networksettings"    android:sharedUserId="android.uid.system"    android:versionCode="1"    android:versionName="1">


 


 

 

0 0
原创粉丝点击