Calvin's Tech Space

          成于堅(jiān)忍,毀于浮躁

             :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理

          公告

          搜索

          •  

          最新評(píng)論

          Android給每個(gè)APK進(jìn)程分配一個(gè)單獨(dú)的用戶空間,其manifest中的userid就是對(duì)應(yīng)一個(gè)Linux用戶
          (Android 系統(tǒng)是基于Linux)的.
          所以不同APK(用戶)間互相訪問數(shù)據(jù)默認(rèn)是禁止的.
          但是它也提供了2種APK間共享數(shù)據(jù)的形式:
          1. Share Preference. / Content Provider
          APK可以指定接口和數(shù)據(jù)給任何其他APK讀取. 需要自己實(shí)現(xiàn)接口和Share的數(shù)據(jù).
          本文對(duì)于這個(gè)不做詳細(xì)解釋

          2. Shared User id
          通過Shared User id,擁有同一個(gè)User id的多個(gè)APK可以配置成運(yùn)行在同一個(gè)進(jìn)程中.所以默認(rèn)就是
          可以互相訪問任意數(shù)據(jù). 也可以配置成運(yùn)行成不同的進(jìn)程, 同時(shí)可以訪問其他APK的數(shù)據(jù)目錄下的
          數(shù)據(jù)庫和文件.就像訪問本程序的數(shù)據(jù)一樣.
          比如某個(gè)公司開發(fā)了多個(gè)Android 程序, 那么可以把數(shù)據(jù),圖片等資源集中放到APK  A中去. 然后
          這個(gè)公司的所有APK都使用同一個(gè)User ID, 那么所有的資源都可以從APK A中讀取.

          舉個(gè)例子:
          APK A 和APK B 都是C公司的產(chǎn)品,那么如果用戶從APK A中登陸成功.那么打開APK B的時(shí)候就不用
          再次登陸. 具體實(shí)現(xiàn)就是 A和B設(shè)置成同一個(gè)User ID:
              * 在2個(gè)APK的AndroidManifest.xml 配置User ID:
              <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="com.android.demo.a1"
              android:sharedUserId="com.c">
             這個(gè)"com.c" 就是user id, 然后packagename APK A就是上面的內(nèi)容,  APK B可能
             是"com.android.demo.b1" 這個(gè)沒有限制

          這個(gè)設(shè)定好之后, APK B就可以像打開本地?cái)?shù)據(jù)庫那樣 打開APK A中的數(shù)據(jù)庫了.
          APK A把登陸信息存放在A的數(shù)據(jù)目錄下面. APK B每次啟動(dòng)的時(shí)候讀取APK A下面的數(shù)據(jù)庫
          判斷是否已經(jīng)登陸:
          APK B中的代碼:
                      friendContext = this.createPackageContext(
                              "com.android.demo.a1",
                              Context.CONTEXT_IGNORE_SECURITY);
          通過A的package name 就可以得到A的 packagecontext
          通過這個(gè)context就可以直接打開數(shù)據(jù)庫.

          轉(zhuǎn)自http://bingoit.javaeye.com/blog/457891
          posted on 2010-01-31 19:39 calvin 閱讀(634) 評(píng)論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 赣州市| 桑日县| 台湾省| 焉耆| 江北区| 罗定市| 奈曼旗| 金塔县| 建平县| 垦利县| 富平县| 新宾| 克拉玛依市| 道孚县| 兴仁县| 寿阳县| 正宁县| 吴川市| 潢川县| 乌兰浩特市| 澳门| 沈丘县| 石门县| 高雄市| 万山特区| 泗洪县| 安多县| 芜湖市| 自贡市| 绥棱县| 宁远县| 青海省| 文安县| 钟祥市| 井研县| 普陀区| 厦门市| 通许县| 临高县| 大渡口区| 雷波县|