转自http://dev.10086.cn/cmdn/wiki/index.php?doc-view-3 629.html 网上找了很久,未果。
偶然的机会,看到aiMinesweeper.HelloSkin的AndroidManifest.xml里有那么一个属性:Android:sharedUserId="com.artfulbits.aiminesweeper"
顿时感到看到了阳光,马上google了一下,发现了关键的地方。
SharedUserid
拥有同一个User id的多个APK可以配置成运行在同一个进程中,所以默认就是可以互相访问任意数据。也可以配置成运行成不同的进程,同时可以访问其他APK的数据目录下的数据库和文件,就像访问本程序的数据一样。
哈哈,这个就是我要找的东西,马上开始试验。
工程1(主工程)
只有1个画面,包含1个为了测试用的button
AndroidManifest.xml MainActivity @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Context friendContext = null; try { friendContext = this.createPackageContext( "com.test.android.skin.myskin", Context.CONTEXT_IGNORE_SECURITY); } catch (NameNotFoundException e) { e.printStackTrace(); } Button btn = (Button) findViewById(R.id.btn); btn.setBackgroundDrawable(friendContext.getResourc es().getDrawable( R.drawable.btn_background)); } drawable下放一张名为btn_background.png的图片
工程2(皮肤工程)
AndroidManifest.xml drawable下也放一张名为btn_background.png的图片(换成xml文件就可以实现不同状态不同图片的功能)
把2个工程都安装到模拟器上以后,运行工程1,button上的图片果然是工程2中的btn_background.png,终于成功了。
偶然的机会,看到aiMinesweeper.HelloSkin的AndroidManifest.xml里有那么一个属性:Android:sharedUserId="com.artfulbits.aiminesweeper"
顿时感到看到了阳光,马上google了一下,发现了关键的地方。
SharedUserid
拥有同一个User id的多个APK可以配置成运行在同一个进程中,所以默认就是可以互相访问任意数据。也可以配置成运行成不同的进程,同时可以访问其他APK的数据目录下的数据库和文件,就像访问本程序的数据一样。
哈哈,这个就是我要找的东西,马上开始试验。
工程1(主工程)
只有1个画面,包含1个为了测试用的button
AndroidManifest.xml MainActivity @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Context friendContext = null; try { friendContext = this.createPackageContext( "com.test.android.skin.myskin", Context.CONTEXT_IGNORE_SECURITY); } catch (NameNotFoundException e) { e.printStackTrace(); } Button btn = (Button) findViewById(R.id.btn); btn.setBackgroundDrawable(friendContext.getResourc es().getDrawable( R.drawable.btn_background)); } drawable下放一张名为btn_background.png的图片
工程2(皮肤工程)
AndroidManifest.xml drawable下也放一张名为btn_background.png的图片(换成xml文件就可以实现不同状态不同图片的功能)
把2个工程都安装到模拟器上以后,运行工程1,button上的图片果然是工程2中的btn_background.png,终于成功了。
本文介绍如何通过配置Android:sharedUserId属性使不同APK在Android系统中共享同一Userid,进而实现跨应用访问资源,如数据库和文件。具体演示了一个主应用与皮肤应用之间的资源共享案例。
381

被折叠的 条评论
为什么被折叠?



