【手机麻将源码论坛】【博学谷app源码】【老站长源码下载】launcher 源码分析

2025-01-20 04:50:47 来源:交易所 源码 分类:知识

1.KubeVirt网络源码分析
2.如何设置系统唯一的 launcher

launcher 源码分析

KubeVirt网络源码分析

       在KubeVirt的源码网络架构中,virt-launcher与虚拟机之间建立了一对一的分析对应关系,即在每个pod中运行一台虚拟机。源码本文将聚焦于网络组件的分析手机麻将源码论坛分析。

       下图展示了KubeVirt的源码网络体系,三个实线框表示从外到里依次为:Kubernetes工作节点、分析博学谷app源码工作节点上的源码POD、以及POD中运行的分析虚拟机。三个虚线框从下到上分别为:Kubernetes网络(Kubernetes CNI负责配置)、源码libvirt网络,分析以及虚拟机网络。源码本文仅关注libvirt网络与虚拟机网络。分析

       在kubevirt中,源码老站长源码下载LibvirtDomainManager类的分析preStartHook方法在虚拟机启动前执行,通过调用SetupPodNetwork方法为虚拟机准备网络环境。源码

       SetupPodNetwork方法执行三个关键步骤,网站源码上传建站分别对应discoverPodNetworkInterface、preparePodNetworkInterfaces和StartDHCP方法。discoverPodNetworkInterface方法收集pod的越狱双号辅助源码网络接口信息,包括IP和MAC地址。这些信息将通过DHCP协议传递给虚拟机。为确保虚拟机能接收这些信息,preparePodNetworkInterfaces方法对容器网络进行相应调整。

       此方法会启动一个只提供一个DHCP客户端的DHCP服务器(SingleClientDHCPServer)。DHCP服务提供给虚拟机的不仅仅是IP地址,还包括网关信息和路由信息。此过程确保虚拟机在KubeVirt环境中能够正常访问网络。

       本文以KubeVirt 0.4.1版本的源码为例分析网络部分,后续将对更最新版本的KubeVirt virt-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),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了,也不会出现选择界面。

更多资讯请点击:知识

热门资讯

赴港澳商务签注将“全国通办”

2025-01-20 04:472576人浏览

神助指标源码_神器指标公式源码

2025-01-20 04:041136人浏览

蜂窝appstore源码_蜂窝软件源

2025-01-20 03:022213人浏览

围住小猫 源码

2025-01-20 02:061931人浏览

推荐资讯

辽宁召开全省市场监管部门负责同志座谈会

中国消费者报沈阳讯记者王文郁)8月26日,辽宁全省市场监管部门负责同志座谈会在沈阳市召开,总结今年上半年工作,分析当前形势,部署下半年重点任务,动员全省市场监管系统坚定信心、鼓足干劲、攻坚突破,坚决打

时间循环源码_时间循环源码怎么看

1.请问,在易语言编程中如何实现,到了一个设置的时间自动执行啦? 如何实现啦?2.用while循环求s=1+1+2)+1+2+3)+……+1+2+3+…+n)的值3.127部时空循环时间循环)题材

php源码开源

1.php是什么意思2.php的最大优势是什么?3.PHP开源程序中常见的后台绕过方法总结4.php是什么5.kphp开源框架概述php是什么意思 PHP的意思是一种广泛应用的开源服务器端脚本语言