首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android 插件化】Hook 插件化框架总结 ( 插件包管理 | Hook Activity 启动流程 | Hook 插件包资源加载 ) ★★★

如果在父类中没有找到 , 则返回空 * 如果没有父类 , 返回空 * * 尽量传具体的正确的类 , 不要传子类 * @param name...使用 Intent 启动插件包时 , 一般都使用隐式启动 // 调用 Intent 的 setComponent , 通过包名和类名创建 Component , //...启动自己的类 intent = (Intent) arg; // 新的 Intent , 用于替换原有的 Intent...= null) { // 使用 包含插件包组件信息的 Intent , // 替换之前在 Ams 启动之前设置的...只有插件包中的 Activity 才进行相应的修改 // 在调用插件包中的组件时 , 在 Intent 中传入一个 isPlugin 变量 , // 也可以传入插件的标志位

1.4K31

【错误记录】Android 应用安装后出现两个启动图标 ( 排查应用及依赖库中配置了 android.intent.category.LAUNCHER 的 Activity )

文章目录 一、报错信息 二、解决方案 一、报错信息 ---- Android 应用安装后 , 出现两个相同的启动图标 , 其中一个可以启动 , 另外一个启动后 , 直接崩溃 ; 卸载其中一个 , 会将整个应用卸载...; 二、解决方案 ---- 出现上述问题的直接原因就是在 AndroidManifest.xml 清单文件中 , 配置了多个 android.intent.category.LAUNCHER 的 Activity..., 每个都会生成一个对应的图标 ; <activity android:name="xxx.XActivity"> intent-filter...:name="android.intent.category.LAUNCHER" /> intent-filter> 一般情况不可能在...AndroidManifest.xml 清单文件中故意配置多个启动项 , 最大的可能是在引入的第三方库中 , 有该配置 ; 尤其是在组件化中 , 如果要引入一个独立的第三方应用 , 如果配置不对 ,

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android开发(39) 账户管理器概述

    将会被调用,提示用户创建一个适当类型账户 重要的:如果应用正在使用预先被记忆的账户选项,它必须确保账户仍然存在于一个被 通过 getAccountsByType(String)返 回的账户列表。...在使得auth token无效后, 立即返回到上面的“请求一个auth token”步骤。如果是第二次出处理失败了,那么它将被当做一次诚恳的认证失败来对待并 且通知用户或做其他适当处理。...调用者可以选择是否允许AccountManager去直接启动必要的用户接口并且等待用户,或者返回一个intent,它是调用者可以启动接口。或者一些情况下,安装一个通知,它是用户可以选择去启动接口。...为了成为一 个 认证器,一个类必须继承该类,提供抽象方法的实现,并且写一个服务(service), 在被ACTION_AUTHENTICATOR_INTENT作为action的intent调用时,在该服务的...在 AndroidManifest.xml 文件中,这个服务必须指定下面的 intent过滤器(intent filter )和元数据标记。

    1.3K00

    面试官:同学,说说 Applink 的使用以及原理

    流程 在AS 上其实已经有详细的使用步骤解析了,这里给大家普及下 ? 快速点击 shift 两次,输入 APPLink 即可找到 AS 提供的集成教程。...在 AS 中已经有详细的使用步骤了,总共分为 4 步 add URL intent filters 创建一个 URL ?...点击完成后,AS 会自动在两个地方进行修改,一个是 AndroidManifest intent-filter...上诉也说了,我们配置的域名是在 activity 的 data 标签的,那是否是可以认为 applink 是一种隐式启动,应用安装的时候根据 data 的内容到这个网页下面去获取 assetlinks.json...确认过眼神对吧~~~ 也就说在第一次安装 APP 的时候是会去请求 data 标签下面的域名的,并且去请求所获得的域名,那 安装->初次启动 的体验自然会想到是在源码中 PackageManagerService

    2.2K20

    解读Android 12首个开发者预览版

    在Android12首个开发者预览版发布后,个推快速对新系统的有关更新展开了调研。本文对Android 12预览版的部分新功能、新特性进行了解读,希望能帮助广大开发者对新系统有个快速了解。...在之前版本的系统下,用户启动安卓的沉浸模式,默认需要的手势操作是:从屏幕侧方滑入,退出沉浸模式,然后再返回上一个界面。...相关API返回空值或占位符值,具体取决于应用程序的目标SDK版本: ➀ target = 12 ,返回 null ➁ target <12 ,返回 02:00:00:00:00:00 未被信任的触摸事件将被阻止...性能 前台服务启动限制 以 Android 12 为目标的应用程序,无法在后台运行时启动前台服务,应用程序在后台运行时,可考虑使用 WorkManager 执行任务。...ForegroundService通知延迟 前台服务启动后必须调用startForeground() 来显示前台通知,如果应用在5s内未调用 startForeground(),则系统将停止服务并声明此应用为

    1.9K30

    Activity的启动模式

    在Android程序中,应用程序通过活动栈来管理Activity,活动栈中有多少个Activity对象,我们在退出程序的时候就要按多少下返回键(即要将活动栈中的所有Activity出栈),但是这样的话难免会有活动栈中存在相同的...首先,我们的Activity对象在我们在Android工程的AndroidManifest.xml配置文件中注册,之后才可以被我们的程序使用,而在我们注册Activity时,有一个launchMode属性是可以赋值的...MainActivity明明已经在活动栈栈顶,还会被创建新的对象。...**当launchMode属性设置为standard时,如果有进程要启动这个Activity,那么无论这个Activiy是否在活动栈栈顶,都会被再次启动一次,**那么怎么解决呢。...:**再返活动栈中,如果要启动的Activity在活动栈栈顶,那么,将不会创建这个Activity的实例,但是如果不在,那么就会创建一个新的Activity实例并将其处于活动栈栈顶。

    61110

    Deeplink实践原理分析

    这个配置会告诉Android系统去验证你的应用是否属于在intent filter内指定的URL域名。 2.在以下链接地址里,放置一个数字资产链接的Json文件,声明你的网址和应用之间的关系。...关于json文件的内容如下所示: package_name:在build.gradle里定义的application ID sha256_cert_fingerprints:应用签名的SHA256指纹信息...文件的注意点 这个文件的格式的content-type必须是application/json 这个文件只能放在https的链接中,不管你之前在action中声明的是http或者https 这个文件不能有任何重定向...目前Android源码提供的是一个双向认证的方案:在APP安装的时候,客户端根据APP配置像服务端请求,如果满足条件,scheme跟服务端配置匹配的上,就为APP设置默认启动选项,所以这个方案很明显,在安装的时候需要联网才行...就知道为什么Applink需在安装时联网才有效,到这里其实就可以理解的差不多,后面其实就是针对配置跟App自身的配置进行校验,如果通过就设置默认启动,并持久化,验证成功的话可以通过。

    3K00

    HarmonyOS入门第一课:初识HarmonyOS

    在DevEco Studio菜单栏,点击Tools > HAD Manager。 在弹出的界面中点击Login,使用注册的账号登录。 登录后,请点击界面的允许按钮进行授权。...DevEco Studio会启动应用的编译构建,完成后应用即可运行在模拟器上。 四.工程结构及应用程序结构 4.1 工程目录 4.2 entry 应用的主模块。...和对应的布局文件: 注册SecondAbility 因为我们选择的是用系统提供的Ability模板快速创建了Ability,因此,开发工具会把我们新建的Ability自动在config.json...创建一个空的Intent,用于设置启动的目标 Intent secondIntent = new Intent(); //3....通过Intent启动目标Ability startAbility(secondIntent); }); } } 注意: 当根据Ability的名字启动时,

    78551

    【Flutter 专题】120 Flutter & 腾讯移动通讯 TPNS~

    注册推送服务 对于服务的注册初始化,可以在首次进入应用 initState() 中直接初始化,也可以根据业务逻辑在固定的位置进行初始化,需要传递申请的账号 ID 和 KEY;注册成功之后会在 onRegisteredDone...上报角标数 对于桌面角标,在通知类消息中 华为 和 小米 设备在开启权限之后,接收通知会由桌面角标的更新;而 TPNS 提供的 setBadge() 只有在 iOS 环境下支持,对于 Android...2.2 点击 通知类 Push 消息点击是通过 xgPushClickAction() 方法进行回调,之后的业务逻辑可以根据消息返回的信息进行处理;和尚为了适配其他的 Push 类型,调整了点击后的操作...,默认为启动 app,和尚通常在【附加参数】中添加 Json 进行数据解析,在进行之后的业务处理; XgFlutterPlugin().addEventHandler( xgPushClickAction...3.4 注意事项 和尚在 PendingIntent 中传递的页面依旧是 MainActivity,可以根据具体的业务逻辑启动专门的中转页面;其中使用 MainActivity 时需要,因为设置了

    1.4K41

    从0系统学Android-2.3使用 Intent 在 Activity 之间穿梭

    上一篇文章:从0系统学Android-2.1Activity的使用 2.3.1 使用显式 Intent 对于创建 Activity 的过程我们已经很熟悉了,下面快速的创建第二个 Activity。...下面就是如何启动这第二个 Activity 了,这个时候就需要 Intent 这个类了。 Intent 闪亮登场! Intent 是 Android 应用程序中各个组件进行交互的一个重要的方式。...可以通过它指明当前组件想要执行的动作,还可以在不同的组件之间传递数据。 Intent 一般可以用于启动 Activity、Service、发送广播。...后面两个我们现在还没有学习到,先看启动 Activity。 Intent 大致可分为:显式 Intent 和 隐式 Intent 。先来看显示 Intent 的使用。...完成了 SecondActivity 的启动。 使用这种方式来启动一个 Activity 的『意图』非常明显了,这就是 显式 Intent。

    38310

    Android12,你的适配开始了吗

    在 AVD Manager 中返回虚拟设备列表,然后双击您的 Android 12 虚拟设备以启动它。 2. API 变更 Android 12 面向开发者引入了一些出色的新功能和 API。...相关 API 会返回空值或占位值,具体取决于应用的 Target SDK 版本: 如果应用以 Android 12 为目标平台,则该 API 会返回 null。...在声明新权限后,你的应用可以调用 Window#setHideOverlayWindows(),以表明在你的应用窗口可见时应隐藏所有 TYPE_APPLICATION_OVERLAY 窗口,比如可以在交易确认流程等敏感界面中如此操作...尽可能创建不可变的待处理 intent 在大多数情况下,你的应用应创建不可变的 PendingIntent 对象,如以下代码段所示。...,我们目前在 APP 启动页、短链唤起页等使用了 intent 过滤器;以及在集成推送服务时,使用到的PendingIntent也需要适配,详细可参考官方文档。

    4.3K30

    Android 动态改变app图标

    " /> intent-filter> 我们先来简单的分析一下上面的代码: android:icon="@mipmap/app_logo...,尽量和一个的name保持一致,如果不设置成一个activity的名字,部分手机会有问题。...android:targetActivity=".MainActivity" 指定别名启动的activity,一定要与原来启动入口activity的name保持一致,并且要在的标签下面...添加标签后,具体启动方式,我们可以在服务器端设置一个开关,当请求到要更改桌面图标时,我们就可以通过 PackageManager 对象提供的 setComponentEnabledSetting...()方法关闭当前 Component 组件,并启动别名对应的 Component 组件,为了使得图标能够快速更换,我们可以加上重启Luncher应用代码,name是自己定义个类名,记住一定要传全路径,如

    1.1K10

    【鸿蒙 HarmonyOS】Ability 中使用 XML 布局文件 绘制布局及 UI 组件

    " 选项 ; 在弹出的对话框中 , 输入布局文件名称 , 以及选择布局类型 , 目前只能生成线性布局 DirectionalLayout 布局 ; 设置完布局文件名称以及布局类型后 , 点击...Ability ---- 创建完成后 , 会在 config.json 中的 “abilities” 标签下添加如下 Ability 配置 : { "orientation....类名 ; icon 设置窗口图标 ; description 设置描述字符串 ; type 设置当前的 Ability 类型 ; launchType 设置启动模式 ; 设置该 Ability 为启动...Ability , 将 config.json 中该 Ability 配置放在 “abilities”: [] 标签中第一个 , 按照如下配置 , 自定义的 com.example.abilityxml.MyAbility...就是应用启动后显示的第一个 Ability ; "abilities": [ { "orientation": "unspecified", "visible

    1.3K00
    领券