当前位置: 首页 > article >正文

Android 应用插件化及其进程关系梳理

 插件应用的AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    coreApp="true"
    package="com.demo.phone"
    android:sharedUserId="android.uid.phone">
    <uses-sdk android:minSdkVersion="28" />
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
    <application
        android:defaultToDeviceProtectedStorage="true"
        android:directBootAware="true"
        android:label="@string/phone_label"
        android:process="com.android.phone"
        android:supportsRtl="true"
        android:theme="@style/Theme.Settings">
        <activity android:name="com.demo.MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

            </intent-filter>
        </activity>

        <!-- 定义插件接口PhonePlugin,并且插件在清单列表中声明为 Service -->
        <!-- Must declare plugin as Service,the action should the same as IPluginTest.action(stay consistent) -->
        <service android:name="com.demo.phone.PhonePlugin"
            android:exported="true">
            <intent-filter>
                <action android:name="com.demo.plugin.phone"/>
            </intent-filter>
        </service>

        <activity android:name="com.demo.phone.PhoneActivity"
            android:label="@string/phone_settings"
            android:exported="true"
            android:configChanges="orientation|keyboardHidden|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter android:priority="1">
                <action android:name="android.settings.PHONE_SETTINGS" /> <!--这个自定义或者用原生的-->
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.VOICE_LAUNCH" />
            </intent-filter>
        </activity>

说明运行在Phone进程(待优化)

android:sharedUserId="android.uid.phone"

android:process="com.android.phone" 


http://www.kler.cn/a/386745.html

相关文章:

  • Pytest-Bdd-Playwright 系列教程(9):datatable 参数的使用
  • 【JAVA基础】JVM是什么?
  • Java 多线程(三)—— 死锁
  • 量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据
  • 今日 AI 简报 | 开源 RAG 文本分块库、AI代理自动化软件开发框架、多模态统一生成框架、在线图像背景移除等
  • neo4j desktop基本入门
  • Python异常检测 - LSTM(长短期记忆网络)
  • “2048”游戏网页版html+css+js
  • 100种算法【Python版】第40篇——卡恩算法
  • 基于springboot信用分析管理系统设计与实现
  • Linux下的 MySQL 中添加用户并设置远程访问
  • 十六:Spring Boot (1)-- spring-boot-starter 应用
  • EHOME视频平台EasyCVR视频融合平台支持哪些摄像机接入?监控摄像头镜头的种类有哪些?
  • 启明云端触觉智能与您相约2024年慕尼黑国际电子元器件博览会,不见不散!
  • 半年总结-还有很多要学习
  • clickhouse自增id的处理
  • JS 循环语句
  • 如何学习C++游戏开发
  • 基于微信小程序的实习管理系统(附源码,文档)
  • 2024-11-5 学习人工智能的Day22 openCV(4)
  • 费舍尔信息矩阵 低秩矩阵 渐近正态性
  • 关键词研究与布局的重要性与实施策略
  • Python Matplotlib 如何绘制股票或金融数据图
  • 使用 PyTorch 实现并测试 AlexNet 模型,并使用 TensorRT 进行推理加速
  • springboot 之 接口数据脱敏
  • 淘淘商城实战高并发分布式项目(有源码)