【订货程序源码】【天眼查 源码】【xvfb源码安装】launcher源码下载

2025-01-30 17:05:54 来源:软件库系统源码 分类:娱乐

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

launcher源码下载

如何设置系统唯一的 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),源码订货程序源码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了,也不会出现选择界面。

更多资讯请点击:娱乐

推荐资讯

过河干农活返程被冲走 安溪八旬老人不幸身亡

泉州网7月16日讯 记者王金植)昨日上午,在安溪县龙潭溪尚卿乡段,一位八旬老人过河做完农活回家时,被水流冲走。据知情人介绍,死者姓李,今年82岁,是安溪翰苑村人。早上6点多,当事人从家里过河到对岸去干

特朗普与哈里斯继续决战摇摆州

特朗普与哈里斯继续决战摇摆州2024-11-02 11:36:00评论:字体大小 T T T1日晚上,美国民主党总统候选人、副总统哈里斯和共和党总统候选人、前总统特朗普将在威斯康星州密尔沃基县举行对决

首码发布平台源码_首码发布平台源码是什么

1.飞机号怎么飞机号怎么 通过代理加速器。飞机号是Telegram国际聊天软件的通俗称呼,类似于国内的微信,但其具有匿名、加密属性,Telegram是跨平台的即时通信软件。其客户端是自由及开放源代