【fabric 源码搭建】【源码做减法】【python棋牌源码】lancher源码

2024-11-19 08:50:37 来源:米表出售系统源码 分类:热点

1.如何设置系统唯一的 launcher

lancher源码

如何设置系统唯一的 launcher

       ã€€ã€€å®šä¹‰ä¸€ä¸ªç§æœ‰çš„filter选项,然后用这个选项来过滤HOME.

       ã€€ã€€ä¸€èˆ¬æƒ…况下我们使用Manifest中定义的<category android:name="android.intent.category.HOME"来过滤的,

       ã€€ã€€æˆ‘们现在增加一个私有的HOME_FIRST过滤。

       ã€€ã€€åœ¨Intent.java(frameworks/base/core/java/android/content/Intent.java)中添加两行代码

       ã€€ã€€//lixinso:添加CATEGORY_HOME_FIRST

       ã€€ã€€@SdkConstant(SdkConstantType.INTENT_CATEGORY)

       ã€€ã€€public static final String CATEGORY_HOME_FIRST = "android.intent.category.HOME_FIRST";

       ã€€ã€€3)修改和CATEGORY_HOME相关的所有的地方,都改成HOME_FIRST,主要是framework中的这几个地方:

       ã€€ã€€frameworks/base/services/java/com/android/server/am/ActivityManagerService.java中

       ã€€ã€€//intent.addCategory(Intent.CATEGORY_HOME);

       ã€€ã€€æ”¹æˆintent.addCategory(Intent.CATEGORY_HOME_FIRST); //lixinso:

       ã€€ã€€//if (r.intent.hasCategory(Intent.CATEGORY_HOME)) {

       ã€€ã€€æ”¹æˆif (r.intent.hasCategory(Intent.CATEGORY_HOME_FIRST)) { //lixinso: Intent.CATEGORY_HOME -> Intent.CATEGORY_HOME_FIRST

       ã€€ã€€frameworks/base/services/java/com/android/server/am/HistoryRecorder.java中

       ã€€ã€€// _intent.hasCategory(Intent.CATEGORY_HOME) &&

       ã€€ã€€æ”¹æˆ _intent.hasCategory(Intent.CATEGORY_HOME_FIRST) && //lixinso: Intent.CATEGORY_HOME->Intent.CATEGORY_HOME_FIRST

       ã€€ã€€frameworks/policies/base/mid/com/android/internal/policy/impl/MidWindowManager.java中

       ã€€ã€€//mHomeIntent.addCategory(Intent.CATEGORY_HOME);

       ã€€ã€€æ”¹æˆ mHomeIntent.addCategory(Intent.CATEGORY_HOME_FIRST); //lixinso

       ã€€ã€€frameworks/policies/base/mid/com/android/internal/policy/impl/RecentApplicationsDialog.java中

       ã€€ã€€//new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME),fabric 源码搭建0);

       ã€€ã€€æ”¹æˆ new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME_FIRST),0); //lixinso

       ã€€ã€€frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java中

       ã€€ã€€//mHomeIntent.addCategory(Intent.CATEGORY_HOME);

       ã€€ã€€æ”¹æˆ mHomeIntent.addCategory(Intent.CATEGORY_HOME_FIRST); //lixinso

       ã€€ã€€frameworks/policies/base/phone/com/android/internal/policy/impl/RecentApplicationsDialog.java中

       ã€€ã€€//ResolveInfo homeInfo = pm.resolveActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME),0);

       ã€€ã€€æ”¹æˆ ResolveInfo homeInfo = pm.resolveActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME_FIRST),0); //lixinso

       ã€€ã€€4) 写一个自己的Launcher.

       ã€€ã€€å¯ä»¥å‚考android sample中的Launcher,或者android源代码中的 /packages/apps/Launcher 来写。

       ã€€ã€€åœ¨Launcher中标记其是不是Launcher的最关键的代码时Manifest中的filter:android:name="android.intent.category.HOME"

       ã€€ã€€çŽ°åœ¨æˆ‘们定义了自己的filter,那么,我们在我们自己写的Launcher中将Manifest改为:

       ã€€ã€€<application android:process="android.process.acore3" android:icon="@drawable/icon" android:label="@string/app_name">

       ã€€ã€€<activity android:name=".FirstAppActivity"

       ã€€ã€€android:label="@string/app_name">

       ã€€ã€€<intent-filter>

       ã€€ã€€<action android:name="android.intent.action.MAIN" />

       ã€€ã€€<category android:name="android.intent.category.HOME_FIRST" />

       ã€€ã€€<category android:name="android.intent.category.DEFAULT" />

       ã€€ã€€<category android:name="android.intent.category.MONKEY" />

       ã€€ã€€</intent-filter>

       ã€€ã€€</activity>

       ã€€ã€€</application>

       ã€€ã€€ç„¶åŽå°†ç¼–译好的apk放到/out/target/product/generic/system/app目录下。

       ã€€ã€€5)将Android自带的Launcher删除掉,包括源代码(packages/apps/Launcher)和apk(/out/target/product/generic/system/app/Launcher.apk)。

       ã€€ã€€6)

       ã€€ã€€åšå®Œè¿™äº›å·¥ä½œï¼Œå°±å¯ä»¥é‡æ–°ç¼–译Android了,我们可以编译修改过的几个相关的包。

       ã€€ã€€å¦‚果之前编译过了Android源码,可以用mmm命令来编译部分的改动。

       ã€€ã€€è¿™é‡Œéœ€è¦è¿™æ ·ç¼–译:

       ã€€ã€€$ . build/envsetup.sh

       ã€€ã€€$ mmm frameworks/base

       ã€€ã€€$ mmm frameworks/base/services/java

       ã€€ã€€$ mmm frameworks/policies/base/mid

       ã€€ã€€$ mmm frameworks/policies/base/phone

       ã€€ã€€7)

       ã€€ã€€ç¼–译完成后重新生成img文件。

       ã€€ã€€$ make snod

       ã€€ã€€8) 现在可以启动Android模拟器来看效果了。

       ã€€ã€€é¦–先设置环境变量:

       ã€€ã€€$ export ANDROID_PRODUCT_OUT= ./out/target/product/generic

       ã€€ã€€ç„¶åŽåˆ‡æ¢åˆ°

       ã€€ã€€$ cd ./out/host/linux-x/bin

       ã€€ã€€è¿è¡Œ

       ã€€ã€€$ ./emulator

       ã€€ã€€è¿™æ ·æˆ‘们启动的模拟器里面用的image就是我们刚才编译好的自己定制的东西了。

       ã€€ã€€ä»Žæ¨¡æ‹Ÿå™¨ä¸Šå¯ä»¥çœ‹åˆ°å¯åŠ¨çš„Launcher是我们自己的Launcher,不会出现默认的Launcher了,也不会出现选择界面。

更多资讯请点击:热点

推荐资讯

风扇源码_小风扇源码

1.直接调节风扇转速的Windows开源工具--Open Hardware Monitor2.快速易上手,8个实例方案带你由浅入深学STM系列微控制器3.0×000000D1,0×00000008

美聯儲宣布對摩根大通處以約9820萬美元罰款

美國華盛頓的美聯儲大樓。新華社資料圖) 據央視新聞報道,當地時間3月14日,美聯儲發表聲明,宣布對摩根大通集團採取強制措施,並對該公司處以約9820萬美元的罰款。聲明表示,摩根大通在2014年至20

被嗆背骨瑜坦言「場面蠻震撼」 高嘉瑜:大家愛民進黨方式不同

副總統賴清德昨12)天和黨員見面,發表角逐黨主席的政見發表會,民進黨立委高嘉瑜也一同出席,但一到場就被數名黨員怒嗆「下台、背骨」,發言時更是噓聲四起、謾罵聲不斷,對此她今13)天回應,被嗆「背骨瑜」,