日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

一个apk多个ICON执行入口

發(fā)布時間:2023/11/27 生活经验 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个apk多个ICON执行入口 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一個工程對應(yīng)一個AndroidManifest.xml文件,這個文件中包含有該項目的一些設(shè)置,如權(quán)限、SDk版Activity、Service信息等。一般而言,這個文件中會有且僅有一個application節(jié)點,這個節(jié)點表示這是一個應(yīng)用程序,不管它下面還有多少子節(jié)點如Activity、Service等等。形象的說,就是這個項目生成的apk安裝到Android設(shè)備后,應(yīng)用程序列表中會出現(xiàn)一個ICON,這個ICON就是這個程序的執(zhí)行入口了。

但是,某些情況下,我們需要為我們的apk設(shè)置多個執(zhí)行入口,也就是安裝后在應(yīng)用程序列表中出現(xiàn)多個ICON圖標(biāo),各個ICON是APP不同模塊的入口點,并且各個模塊運行在不同的進程中。

可能這種需求很少見,但還是有一個現(xiàn)實的例子:系統(tǒng)中的聯(lián)系人和電話這兩個程序。表面看來這是兩個獨立的應(yīng)用程序,但實際上它們只是一個應(yīng)用程序的兩個執(zhí)行入口而已,點擊聯(lián)系人圖標(biāo)就會進入聯(lián)系人界面,點擊電話圖標(biāo)就會進入撥號界面,這都是通過設(shè)置該項目下Activity的屬性來實現(xiàn)的。

Activity有一個重要的屬性process,這個屬性是指定Activity運行時所在的進程。沒有指定此屬性的話,所有程序組件運行在應(yīng)用程序默認的進程中,這個進程名跟應(yīng)用程序的包名一致。中所有組建元素的process屬性能夠為該組件設(shè)定一個新的默認值。但是任何組件都可以覆蓋這個默認值,允許你將你的程序放在多進程中運行。如果這個屬性被分配的名字以:開頭, 當(dāng)這個activity運行時, 一個新的專屬于這個程序的進程將會被創(chuàng)建。

以下面的代碼為例,項目中有兩個Activity,其中一個采用默認屬性,另一個為其指定process屬性以及新的ICON,這樣該項目安裝到設(shè)備上之后可以發(fā)現(xiàn)多了兩個應(yīng)用程序圖標(biāo),一個是應(yīng)用程序默認的圖標(biāo),點擊后進入HelloWorldActivity;另一個是手動指定的ICON,點擊后進入NextPageActivity。這時使用adb shell查看進程可以發(fā)現(xiàn),兩個Activity是運行在不同的進程中的。

AndroidManifest.xml的主要內(nèi)容如下:

<activity android:name=".HelloWorldActivity"  android:label="@string/app_name"  android:process=":process.main">  <intent-filter>  <action android:name="android.intent.action.MAIN" />  <category android:name="android.intent.category.LAUNCHER" />  </intent-filter>  
</activity>  <activity android:name="cn.ian.NextPageActivity"  android:label="@string/nextpage"  android:process=":process.sub"  android:icon="@drawable/icon1"  android:launchMode ="singleInstance">  <intent-filter>  <action android:name="android.intent.action.MAIN" />  <category android:name="android.intent.category.LAUNCHER" />  </intent-filter>  
</activity>  

通過上面的方式,為App的各個組件指定process和icon屬性,便能夠達到類似于一個apk中打包多個程序(模塊)的目的。

ps:要特別注意,為Activity指定process屬性后,還必須為其指定launchMode為singleInstance,這樣才有效。

轉(zhuǎn)載于:https://www.cnblogs.com/jingle1267/archive/2012/12/04/2800947.html

總結(jié)

以上是生活随笔為你收集整理的一个apk多个ICON执行入口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。