`

Android 多个APK共享数据

阅读更多

Android 多个APK共享数据(Shared User ID)

Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux 用户
(Android 系统是基于Linux)的.
所以不同APK(用户)间互相访问数据默认是禁止的.
但是它也提供了2种APK间共享数据的形式:
1. Share Preference. / Content Provider
APK可以指定接口和数据给任何其他APK读取. 需要自己实现接口和Share的数据.
本文对于这个不做详细解释

2. Shared User id
通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中.所以默认就是
可以互相访问任意数据. 也可以配置成运行成不同的进程, 同时可以访问其他APK的数据目录下的
数据库和文件.就像访问本程序的数据一样.
比如某个公司开发了多个Android 程序, 那么可以把数据,图片等资源集中放到APK  A中去. 然后
这个公司的所有APK都使用同一个User ID, 那么所有的资源都可以从APK A中读取.

举个例子:
APK A 和APK B 都是C公司的产品,那么如果用户从APK A中登陆成功.那么打开APK B的时候就不用
再次登陆. 具体实现就是 A和B设置成同一个User ID:
    * 在2个APK的AndroidManifest.xml 配置User ID:
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.demo.a1"
    android:sharedUserId="com.c">
   这个"com.c" 就是user id, 然后packagename APK A就是上面的内容,  APK B可能
   是"com.android.demo.b1" 这个没有限制

这个设定好之后, APK B就可以像打开本地数据库那样 打开APK A中的数据库了.
APK A把登陆信息存放在A的数据目录下面. APK B每次启动的时候读取APK A下面的数据库
判断是否已经登陆:
APK B中的代码:
            friendContext = this.createPackageContext(
                    "com.android.demo.a1",
                    Context.CONTEXT_IGNORE_SECURITY);
通过A的package name 就可以得到A的 packagecontext
通过这个context就可以直接打开数据库.

分享到:
评论

相关推荐

    Android实现不同apk间共享数据的方法(2种方法)

    Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户(Android 系统是基于Linux)的. 所以不同APK(用户)间互相访问数据默认是禁止的. 但是它也提供了2种APK间共享数据的形式: 1. ...

    多台手机批量安装apk

    若你需要在多台Android手机中,每台要安装多个apk。那这个最适合不过。 把要安装的apk放入一个文件夹,选中这个文件夹,插上电脑,就自动安装,只要你有多少个U口,就能同时安装多少台手机。 我500台note2,半小时装...

    解决共享库不存在或失效导致的应用未安装

    很多使用安卓的朋友应该都遇到过安装某些软件出现”应用未安装“,用电脑手机助手进行安装时会出现没有该软件的共享库或已失效,这个问题大概困扰了我3天时间,终于在我的坚持下找到了解决方法,希望出现过这样问题...

    ML_Manager_Pro_v3.5.2_build_94.apk

    •批处理模式可同时提取多个APK。 •使用其他应用程序共享任何APK:电报,Dropbox,电子邮件等。 •通过将它们标记为收藏来组织应用程序,并更轻松地访问它们。 •将最新的APK上传到APKMirror。 •卸载任何已安装的...

    Talking Translator 2.3.2 [Premium][Mod] (Android).apk有声翻译器

    Talking Translator 2.3.2,体化的解决方案适用于任何人,任何地方,凭借其即时翻译功能,应用程序将帮助你在任何多语言环境中进行沟通,如旅行、商务旅行、买方会议,或只是普通对话。 真正的沟通从尊重开始 试试...

    使用Python线上打包Android项目apk.zip

    网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:包括云计算平台、大数据分析、人工...

    Android开发与应用——张荣,原书配套课件

    7.4 Android多线程通信机制 7.5 小结 练习 第8章 网络通信 8.1 通过HTTP访问网络 8.1.1 测试用Web服务器 8.1.2 WebView组件 8.1.3 HttpURLConnection 8.2 Socket编程 8.3 数据的解析 8.3.1 JSON...

    黑莓 bbm.apk

    • 广播消息 – 同时向多个 BBM 联系人发送消息。 BBM Channels:加入对话,聊聊您热爱的话题。* • 创建新频道,交流各种奇思妙想,表达各种情感。 • 订阅现有 BBM Channel,与相同爱好的用户一起聊天。 创建 BBM...

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

    android开发资料大全

    Android3D游戏开发付费视频教程共享(更新第四集) 史上最全示例Android教学视频,非常值得观看 Android游戏开发系列源码+CHM+书籍截图+目录】 Android developer guide中文翻译文档 Android开发开发技巧之 EditText...

    Android系统信息获取,apk应用信息获取学习.zip

    网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:数据集、包括云计算平台、大数据...

    基于代码分层API使用情况揭示Android恶意软件APK的继承

    这项研究建议为每个APK在不同的代码分层层(即数据包,类和功能)上构造其API使用特性。 树结构用于描述和呈现此类API使用信息。 通过比较这样的树结构,可以计算出APK相似度,并且可以对APK进行聚类以揭示恶意软件...

    3C Toolbox Pro 1.9.9.7.6C.apk

    1◊备份和验证应用程序apk /数据(多个版本),短信和呼叫日志 ◊系统应用程序卸载程序和更新清理程序 ◊分享和备份应用程序到电子邮件,DropBox,GDrive等... ◊将任何应用程序移动到用户,系统,SD或link2SD◊ ...

    Android APK Update 版本更新的下载和安装,适配7.0-11.0系统.zip

    网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:数据集、包括云计算平台、大数据...

    X-Plore File Manager Pro 4.14.01.apk

    主要交互通过触摸屏完成,单击文件夹或文件以打开文件,或长按打开上下文菜单,其中包含可在特定单击项目或多个选定项目上执行的选项。 多选允许一次对更多文件进行操作。单击复选框可以选择文件。通过单击父文件夹...

    X-plore File Manager.apk

    主要交互是通过触摸屏完成后,单击文件夹或文件,打开文件,或长按以打开包含它可以在特定的点击过的商品或多个选定的项目进行选择上下文菜单。 多选择允许做的操作上更多的文件一次。文件可以通过单击复选框被选中...

    为Android 13绕过系统分区的apk签名校验.zip

    网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:数据集、包括云计算平台、大数据...

    Android插件框架Android-Plugin-Framework.zip

    12、需要关注PluginTest工程的ant.properties文件和project.properties文件以及custom_rules.xml文件,插件使用宿主程序共享库,以及共享库R引用,和编译时排除的功能,都在这3个配置文件中体现 暂不支持的...

    本项目旨在可以为Apk打上系统签名.zip

    网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:数据集、包括云计算平台、大数据...

Global site tag (gtag.js) - Google Analytics