Android外掛式開發(一)
1.外掛式開發基礎
外掛式開發是指,只要提供一個主應用程式,此應用程式可以安裝和呼叫其他外掛式的功能模組,當應用程式需要增加功能時,不需要升級應用程式,而是通過安裝新功能模組的外掛即可。其單個外掛的執行必須依賴於主應用程式。外掛開發是單獨進行的。
2.外掛是開發的構想
A.通過如下程式碼可以獲取android系統內的安裝應用的列表,同時獲取每個安裝包的資訊。
List<PackageInfo> pkgs = pm
.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
B.通過如下程式碼可以獲取每個包的資源
PackageManager pm = contxt.getPackageManager();
res = pm.getResourcesForApplication(packageName);
C.通過如下程式碼可以獲取資源的id
/* Resources res */
res.getIdentifier(resName, resType, packageName)
D.但是由於android系統的安全機制繼承自linux,所以對於不同執行程式的apk之間是不能夠直接訪問資源和資料,同時android的創始人應該有這個預測留有方法觀看如下兩個程式碼片段A和片段B:
程式碼片段A:AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.iClient" android:installLocation="auto" android:sharedUserId="com.iClient.Main" android:sharedUserLabel="@string/share_user_label" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:process="com.iClient" android:theme="@style/AppTheme" android:name=".data.ClientApplication" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" android:process="com.iClient" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> ......................................................... </application> </manifest>
程式碼片段B:AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.iClient.agricultrue" android:sharedUserId="com.iClient.Main" android:sharedUserLabel="@string/share_user_label" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" /> .......................................................... </application> </manifest>
如以上2個程式碼段比較 android:sharedUserId="com.iClient.Main"是共同的配置,如此可以保證A應用可以訪問B應用的資源和資料。
以上功能經過驗證後發現,設想完全可以實現,外掛式開發設想成立。
相關文章
- Flutter外掛開發---Android篇FlutterAndroid
- Flutter外掛(Plugin)開發 - Android視角FlutterPluginAndroid
- IntelliJ IDEA/Android Studio外掛開發指南IntelliJIdeaAndroid
- AppDomain實現【外掛式】開發APPAI
- Android外掛化原理(一)Activity外掛化Android
- android 基於dex的外掛化開發Android
- Android外掛化開篇Android
- Android Studio 讓開發效率事半功倍的外掛整理Android
- 《Android原生整合虹軟SDK開發uniapp外掛》AndroidAPP
- 從頭開發一個Flutter外掛(一)開發流程Flutter
- vue開發的一些外掛Vue
- 開發Rhino外掛
- Flutter外掛開發Flutter
- Mybatis外掛開發MyBatis
- chrome 外掛開發Chrome
- flutter 外掛開發Flutter
- VscodeIDEA開發外掛VSCodeIdea
- Webstorm 外掛開發WebORM
- Skywalking 外掛開發
- Android外掛化的一種方案Android
- Android Gradle外掛AndroidGradle
- apisix~lua外掛開發與外掛註冊API
- ZBlog外掛開發檔案結構(外掛)
- Grafana的Datasource外掛開發實踐一Grafana
- 外掛化開發筆記(一)代理模式筆記模式
- 實用!開發者的 Vim 外掛(一)
- 從零開始實現ASP.NET Core MVC的外掛式開發(四) - 外掛安裝ASP.NETMVC
- 從頭開發一個Flutter外掛(二)高德地圖定位外掛Flutter地圖
- VScode股票外掛開發VSCode
- Vue-外掛開發Vue
- babel外掛開發心得Babel
- eslint外掛開發教程EsLint
- babel 外掛開發案例Babel
- dlopen開發外掛庫
- Maven外掛開發教程Maven
- Eclipse外掛開發demoEclipse
- Chrome外掛開發教程Chrome
- Idea日常開發外掛Idea
- Flutter開發之Flutter外掛開發Flutter