这道题在曾经面试「菜鸟网络」中遇到过,不过当时只问了「Activity 启动过程」,这里对整个「App 启动过程」进行完整的源码分析,希望可以帮助到大家。源码分析1. Launcher 捕获点击事件,其过程为 Launcher#onClick -> Launcher#onClickAppShortcut -> Launcher#startAppShortcutOrInfoActivit
转载 2024-08-07 13:16:50
127阅读
我们使用sdk在开发一个android项目时,往往不能使用被隐藏的api,比如说: 1.我们想实现应用的静默安装,我们不能使用 pm.installPackage(mPackageURI, observer, installFlags,installerPackageName); 2.使用大容量存储的相关功能时,不能使用 StorageManager s = (StorageManager) ge
转载 3月前
320阅读
为什么要baseActivity?BaseFragment?BaseActivity上”activity需要做的事情,事先定义好了 1: 所有的activity 都需要预先做好的事情,写在BaseActivity里面:例如: 友盟统计的初始化的打印 常量的定义 添加到activity 的列表里面,方便退出的时候activity 的退出的切换的动画2: 所有的activity 都需要去做的事情,
转载 2024-09-27 23:20:55
34阅读
作者:vivo互联网客户端团队-Chen Long一般来讲,Android开发人员会使用反射调用Acticity中的mReferrer字段来获取跳转来源的包名,但是这种方案是否真的安全呢?我们从源码中来寻找答案。前言mReferrer从哪里来搜索mReferrer,来源回溯使用断点调试跟踪调用栈断点调试对象实例化过程远程服务Binder调用分析万能的搜索并不万能​如何避免包名被伪造关注Pid和Ui
转载 2022-12-20 22:03:43
104阅读
一般来讲,Android开发人员会使用反射调用Acticity中的mReferrer字段来获取跳转来源的包名,但是这种方案是否真的安全呢?我们从源码中来寻找答案
原创 精选 2021-11-16 09:41:55
1302阅读
一般来讲,Android开发人员会使用反射调用Acticity中的mReferrer字段来获
原创 2023-04-04 19:49:57
167阅读
# Android Activity支持deeplink拉起 在Android应用程序中,我们经常需要通过URL链接拉起应用内的特定页面,这就是deeplink的作用。而在Android中,我们可以通过Activity来支持deeplink的拉起。本文将介绍如何在Android应用中实现Activity支持deeplink拉起的方法,并提供代码示例。 ## 流程图 ```mermaid fl
原创 2024-04-11 05:04:05
206阅读
# Android 启动 Deeplink 的全面指南 近年来,深度链接(Deeplink)成为了移动应用中一种流行的技术。深度链接可以让你直接从浏览器、其他应用或社交媒体中打开特定的应用页面,而不仅仅是启动应用。这种方式提高了用户体验和应用的可用性。本文将介绍如何在 Android 中实现深度链接,并提供实际的代码示例。 ## 什么是深度链接? 深度链接是指通过一个 URL 直接链接到应用
原创 2024-10-01 11:34:08
138阅读
# Android Deep Link 启动指南 深度链接(Deep Link)是一种链接,能够将用户直接引导到移动应用中的特定位置,而不是应用的启动页面。使用深度链接,用户在打开链接时,可以直接访问应用中的特定内容,这大大提升了用户体验。本文将详细介绍如何在 Android 应用中实现深度链接的启动。 ## 流程概述 在实现深度链接之前,我们需要了解整个过程的步骤。下表展示了实现 Andr
原创 2024-09-16 06:02:34
99阅读
你一定遇到过这个场景,你在微信上浏览一个朋友分享的淘宝商品,但是你想要在淘宝 App 上打开(毕竟原生 App 才能提供更完整和流畅的体验)。此时,你需要打开淘宝 App,然后再通过搜索功能一步步找到刚才的商品。然后,然后就没有然后了。跳转过程的操作路径太长了,用户体验很一般,用户很容易在这个过程中流失。那么,有没有可能实现浏览器点击链接直达商品页的流畅用户体验呢?这就是 App 深度链接要做的事
转载 2024-04-08 20:42:14
343阅读
JAVA_HOME ->为JDK的安装目录,如:F:\JAVA\jdk1.6.0_043、CLASSPATH ->到哪里找需要执行的.class文件,如: .;%JAVA_HOME%\lib;前面是一个点[.]再加一个分号[;]再以分号结束[;]为什么要加点[.]在编译java文件时,如javac xxx.java 即会在当前目录下生成xxx.class文件,开始菜单->运行-&
实际上它在处理这个注解的时候生成了一个建造者模式里的 builder,然后向 管理中心 注册,说 自己(ArticleActivity)能处理/acticel/xxx的子域名。Scheme 的选择很重要:URL Scheme 唤醒上面简述原理的时候说道了 Manifest 的声明,我们只声明了 android:scheme="http" 和 android:scheme="http" , 但是实际
# Android 配置 Deep Link 的入门指南 ## 引言 随着移动应用的普及,Deep Link(深度链接)技术已经成为应用程序设计中不可或缺的一部分。Deep Link 允许外部链接直接打开应用的特定页面,从而提高用户体验和应用的可访问性。本文将指导你如何在 Android 应用中实现 Deep Link,适合刚入行的小白开发者。 ## 整体流程 在实现 Deep Link
原创 2024-07-31 06:31:01
830阅读
微信已经封禁Universal Link,已经不能实现跳出微信打开App具体细节可以看微信着手封堵 Universal Link但Univeral Link 还是可以学习学习看看的~毕竟几遍在Safari下还有个好处,可以干掉schema跳转的那个难看的错误弹框-- 以上来自2018.1.8修改前言:文章会适当说一些如何开发iOS上的universal link,但类似的文章太多了一艘一大堆,每篇
Deepin -Android Studio-Genymotion 之旅暑假无聊中在deepin系统下配置好了android的开发环境,并使用了比较好的一款模拟器–Genymotion;下面是我配置的非常详细的过程。第一步 :安装deepin系统为什么我会使用deepin系统呢,首先deepin的图形界面做的非常美观,其次从我装了7到8种linux系统来看,deepin系统连学校的校园网最方便。
## 如何在Android中使用Deep Link启动Fragment 在Android开发中,Deep Link是一种让用户可以通过链接直接进入特定内容的方式。今天,我们将学习如何实现Deep Link来启动一个Fragment。我们将介绍整个流程并提供必要的代码示例。 ### 流程概述 以下是实现Deep Link启动Fragment的步骤流程: | 步骤 | 描述
原创 2024-09-25 06:27:26
48阅读
Flex Deep Link(深链接)应用 最近做游戏的时候,发现退出登陆时URL上会自动加上一个“#”字符,很奇怪,Google+Baidu无数次都没有找到答案。今天无意间看到几个群友在说通过“BrowserManager”获取URL,于是仔细查看了API,又发现了“HistoryManager”,这个问题终于明白了。我们通常看的Web页面 可以通过浏览器的“前进”“后退”来查看刚才看
资源准备Android Studio下载 Android Studio,并解压配置 init.gradle,配置国内源,避免 Android Studio 运行缓慢在 HOME 目录下 创建 .gradle 目录mkdir .gradle点击下载init.gradle文件放置在 .gradle 目录内双击 /android-studio/bin 下的 studio.sh (在弹出的窗口选择 运行即
转载 1月前
394阅读
# Android Deep Link 冷启动跳转失败的解析与解决 ## 引言 随着移动互联网的发展,Android应用深度链接(Deep Link)越来越受到开发者的重视。深度链接允许用户直接跳转到应用中的特定页面,这为用户提供了更流畅的体验。然而,在某些情况下,如冷启动时,深度链接可能会失败。本文将探讨这一现象的原因,并提供解决方案,帮助开发者更好地实现深度链接。 ## 什么是深度链接?
原创 2024-10-22 05:30:29
259阅读
Activity启动大致流程:无论是通过Launcher来启动Activity,还是通过Activity内部调用startActivity接口来启动新的Activity,都通过Binder进程间通信进入到ActivityManagerService进程中,并且调用ActivityManagerService.startActivity接口;ActivityManagerService调用Activ
转载 2023-08-31 10:49:50
159阅读
  • 1
  • 2
  • 3
  • 4
  • 5