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

Android 12 SplashScreen API快速入门

这个我们国内开发者一定不会陌生,因为绝大多数的国内App都会有闪屏界面这个功能,很多的App还会利用闪屏界面去打广告。...下图是QQ的闪屏界面: 然而在海外,闪屏界面其实并不太常见,甚至Google之前都不推荐我们在App中加入闪屏界面,所以这次Android 12中官方推出了SplashScreen功能还是让我有点意外的...不过这次官方的SplashScreen和我们国内常见的闪屏界面还不一样,它并不是为了让你在这个界面打广告的,而是为了在App启动初始化的时候避免让用户在一个空白界面等待过长时间。...何时会显示SplashScreen 注意,SplashScreen在Android 12上是强制的,即使你什么都不做,你的App在Android 12上也会自动拥有SplashScreen界面。...,效果如下图所示: 需要注意,这个属性以及接下来要介绍的所有属性都是在Android 12系统上新增的,所以你应该在一个values-v31的专属目录下使用它们。

2K10

android刘海屏适配(刘海屏或圆角适配)

大家好,又见面了,我是你们的朋友全栈君。 安卓P版本也就是刚发布的安卓9.0 其中就加入了刘海屏相关的API。...但是国内厂商为了快速抢占全面屏手机市场,在安卓系统8.1的基础上,硬件就弄出了刘海屏,例如华为nova 3e, oneplus 6, oppo r15, vivo x21,但是系统支持没有更上,没有一个统一的...但发现他们的分辨率都出奇的接近,就像达成了默契,2280 * 1080,高宽比达到了2.1。 今天就来说说怎么适配安卓8.1及P上的刘海屏。 首先下载谷歌最新的SDK API 28及系统镜像。...第三张图是开启一个应用的闪屏页没有适配刘海屏的高度时候的样子,顶部出现了黑色区域。这个黑色区域是因为刘海缺口导致的整个界面整体向下移。...因为我们的闪屏页一般都是会全屏显示,那我们就需要适配刘海屏上的全屏样式了。 坐好了,我开始吹一波了。

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

    Appium+python自动化(二十三)- 真假美猴王Monkeyrunner与Monkey傻傻的分不清楚

    设备app,测试其稳定性并通过截屏可以方便地记录出现的问题。.../框架级别的应用程序和设备以及运行单元测试套件,但您可以将其用于其他目的。...而monkeyrunner运行在PC上,需要通过服务器/客户端的的模式向设备或者模拟器上的android应用发送指令来执行测试,其运行时如下图所示。 ?...2.普遍的做法是将monkey作为一个向待测应用发送随机按键消息的测试工具,验证待测应用在这些随机性的输入面前是否会有闪退或者崩溃。...请注意,插件不允许您访问Android SDK。您无法导入包等com.android.app。这是因为monkeyrunner与框架API级别下的设备或模拟器交互。

    1.6K41

    App 启动优化

    Android APP启动时会出现白屏 由于应用程序启动时冷启动,系统会默认在启动时启动空白窗口 应用程序启动有三种状态,每种状态都会影响应用程序对用户可见所需的时间:冷启动,热启动和温启动。...- 填充加载布局Views - 在屏幕上执行View的绘制过程measure -> layout -> draw 应用程序进程完成第一次绘制后,系统进程会交换当前显示的背景窗口,将其替换为主活动。...;/item>     </style>   设置闪屏图片主题 为了更顺滑无缝衔接我们的闪屏页,可以在启动 Activity 的 Theme中设置闪屏页图片,这样启动窗口的图片就会是闪屏页图片...           //所以闪屏页展示的时间为 2000ms - diffTime.     }   所以我们就可以动态的设置应用闪屏的显示时间,尽量让每一部手机展示的时间一致,这样就不会让手机配置较低的用户感觉漫长难熬的闪屏页时间...(例如初始化了2000ms,又要展示2000ms的闪屏页时间.)

    1.4K10

    一触即发——App启动优化最佳实践

    /topic/performance/launch-time.html 闪屏定义 Android官方的性能优化典范,从第六季开始,发起了一系列针对App启动的优化实践,地址如下: https:...其实最早的时候,闪屏是用来在App未完全启动的时候,让用户不至于困惑App是否启动而加入的一个设计。...而现在的很多App,基本上都把闪屏当做一个广告、宣传的页面了,貌似已经失去了原本的意义,但闪屏,不管怎么说,在一个App启动的时候,都是非常重要的,设计的事情,交给UE吧,开发要做的,就是让App的启动体验...Display Time 从API19之后,Android在系统Log中增加了Display的Log信息,通过过滤ActivityManager以及Display这两个关键字,可以找到系统中的这个...计算启动时间——Screen Record 通过录屏进行启动的分析,是一个很好的办法,在API21+,Android给我们提供了一个更加方便、准确的方式: ➜ ~ adb shell screenrecord

    1.4K40

    Android 启动优化详解

    闪屏优化: 预览闪屏(今日头条),预览窗口实现成闪屏效果,高端机上体验非常好,不过低端机上会拉长总的闪屏时长(建议在Android6.0以上才启用此方案); //优点:避免点击桌面图标无响应 //缺点...:拉长总的闪屏时长 //(可以配合三方库懒加载,异步初始化等方案使用,减少初始化时长) //1....资源文件重排 Facebook 在比较早的时候就使用“资源热图”来实现资源文件的重排 支付宝在《通过安装包重排布优化 Android 端启动性能》中详细讲述了资源重排的原理和落地方法; 实现上都是通过修改...) 插件化和熱修復: 事实上大部分的框架在设计上都存在大量的 Hook 和私有 API 调用,带来的缺点主要有两个: 稳定性/兼容性: 厂商的兼容性、安装失败、dex2oat 失败等,Android P...子线程install(不推荐): 闪屏页开一个子线程去执行MultiDex.install,然后加载完才跳转到主页, 需要注意的是闪屏页的Activity,包括闪屏页中引用到的其它类必须在主dex中,

    5.4K85

    Activity横竖屏切换的那些事

    reverseLandscape API 9 以上,反向横屏 reversePortrait API 9 以上,反向竖屏 sensorLandscape API 9 以上,横屏,但是可以根据 物理方向传感器来切换正反向横屏...注意:如果应用程序的目标API级别是13或更高(通过属性minSdkVersion和属性targetSdkVersion声明),你也需要声明配置项screenSize,因为这将在设备选择肖像和屏幕方向时发生改变...注意:如果应用程序的目标API级别是13或更高(通过属性minSdkVersion和属性targetSdkVersion声明),你也需要声明配置项screenSize,因为这将在设备选择肖像和屏幕方向时发生改变...然而,如果你的程序目标API级别是12或更低,你的Activity总是会自己处理这个配置变化(这个变化不会引起Activity的重启,甚至在Android 3.2或更新的设备上)。...在API级别13里加入的。

    2.2K20

    Android性能优化(一)

    ,启动速度较慢(感官上)的应用可能导致用户再次开启App的意图下降,或者卸载放弃该应用程序。...在屏幕上执行View的绘制过程.measure -> layout -> draw 应用程序进程完成第一次绘制后,系统进程会交换当前显示的背景窗口,将其替换为主活动。...> [70] (无白屏,不过从点击到App仍然存在视觉延迟~) 设置闪屏图片主题 为了更顺滑无缝衔接我们的闪屏页,可以在启动 Activity 的 Theme中设置闪屏页图片,这样启动窗口的图片就会是闪屏页图片...//所以闪屏页展示的时间为 2000ms - diffTime. } 所以就可以动态的设置应用闪屏的显示时间,尽量让每一部手机展示的时间一致,这样就不会让手机配置较低的用户感觉漫长难熬的闪屏页时间...另外因为在闪屏页中仍然有剩余展示时间,所以在这个时间段里如果用户已经下载好了图片并且图片完整,就可以显示广告页。

    2.7K20

    启动优化

    闪屏优化: 预览闪屏(今日头条),预览窗口实现成闪屏效果,高端机上体验非常好,不过低端机上会拉长总的闪屏时长(建议在Android6.0以上才启用此方案); //优点:避免点击桌面图标无响应 //缺点...:拉长总的闪屏时长 //(可以配合三方库懒加载,异步初始化等方案使用,减少初始化时长) //1....资源文件重排 Facebook 在比较早的时候就使用“资源热图”来实现资源文件的重排 支付宝在《通过安装包重排布优化 Android 端启动性能》中详细讲述了资源重排的原理和落地方法; 实现上都是通过修改...) 插件化和熱修復: 事实上大部分的框架在设计上都存在大量的 Hook 和私有 API 调用,带来的缺点主要有两个: 稳定性/兼容性: 厂商的兼容性、安装失败、dex2oat 失败等,Android P...子线程install(不推荐): 闪屏页开一个子线程去执行MultiDex.install,然后加载完才跳转到主页, 需要注意的是闪屏页的Activity,包括闪屏页中引用到的其它类必须在主dex中,

    3.5K54

    你的iPhone 13,粉了吗?

    行早 发自 凹非寺 量子位 | 公众号 QbitAI 花花绿绿的还不够,苹果这是想集齐彩虹七色了。 今天在黑猫投诉平台,苹果13系列手机遭到大量网友投诉粉屏问题。...不,这次粉屏遍地开花,之前也有国外用户反映粉屏问题的先例。 去年10月,也就是苹果13刚发售不久,就有一位外国小哥在苹果官网上投诉这个问题。...但是,iPhone 11、12系列也有过这种情况: “我有一个朋友,他的iPhone 11也粉了……” △图注:粉屏的iPhone 11 iPhone 12 Pro,粉屏、死机、自动重启,解释一下...△图注:又粉又花屏的iPhone 12 Pro 合着经过三代更新还是没有解决屏幕配色问题啊。 除了粉屏,还会闪退重启 在大家的投诉声中,还出现了除了粉屏之外的更多问题。...例如游戏玩着玩着,“啪”,没了,粉屏重启: App闪退也是家常便饭: 同样地,类似的事外国小哥也遇到过,也是去年的10月刚发售不久: 我在玩游戏的时候突然卡住,然后变粉屏,无奈只能重启…… 看来,

    37920

    Android 性能优化—— 启动优化提升60%

    2.启动主线程(main thread) 3.填充加载布局Views 4.在屏幕上执行View的绘制过程.measure -> layout -> draw 应用程序进程完成第一次绘制后,系统进程会交换当前显示的背景窗口...因为现在 App 应用启动都会先进入一个闪屏页(LaunchActivity) 来展示应用信息 默认情况下会出现白屏现象,系统默认会在启动应用程序的时候 启动空白窗口 ,直到 App 应用程序的入口...,直到 App 应用程序的入口 Activity 创建成功,视图绘制完毕 解决方法可查看Android启动界面SplashActivit的实现方法 代码优化 Android中如何计算 App 的启动时间...//所以闪屏页展示的时间为 2000ms - diffTime. } 所以我们就可以动态的设置应用闪屏的显示时间,尽量让每一部手机展示的时间一致,这样就不会让手机配置较低的用户感觉漫长难熬的闪屏页时间...或者是其它异步下载操作 在广告页图片 文件流完全写入后 记录图片大小,或者记录一个标识 在下次的广告页加载中可以判断是否已经下载好了广告页图片以及图片是否完整,否则删除并且再次下载图片 另外因为在闪屏页中仍然有

    2K20

    Android卡顿分析

    ,com.zhoupushuju.zhouyi/com.rnmobx.MainActivity,931] 三、AndroidStudio Profile使用 1、在 Android 12 及更高版本上检测卡顿情况...对于搭载 Android 12(API 级别 31)或更高版本的设备,CPU 性能分析器中 Display 窗格下的 Janky Frameworks 轨道中会显示捕获的轨迹。...image.png 2、在Android 11上检测卡顿情况 对于搭载 Android 11(API 级别 30)的设备,CPU 性能分析器的 Frame Lifecycle 部分会显示捕获的轨迹。...image.png 3、在Android 10及更低版本上检测卡顿情况 对于搭载 Android 10(API 级别 29)及更低版本的设备,相关的操作系统图形管道信息会显示在 CPU 性能分析器系统轨迹中的单个部分...对于部署到搭载 Android 9(API 级别 28)或更高版本的设备的应用,此轨迹显示应用 surface BufferQueue 的缓冲区计数(0、1 或 2)。

    2.6K20

    简易的可拖动的桌面悬浮窗效果Demo

    首先,我们需要知道,悬浮窗分为两种:Activity级别的悬浮窗,系统级别的悬浮窗 Activity级别的悬浮窗跟随所属Activity的生命周期而变化,而系统级别的悬浮窗则可以脱离Activity而存在...由此可知,要实现360手机卫士那样的悬浮窗效果,就需要使用系统级别的悬浮窗 下面学习实现桌面悬浮窗效果的代码步骤: Demo描述,悬浮窗为一个ImageView ,可以在桌面 ,任意应用,锁屏上方任意移动...lp.gravity = Gravity.LEFT|Gravity.TOP; //显示在屏幕左上角 6、悬浮窗相对5默认位置的位置差和悬浮窗宽高设置      //显示位置与指定位置的相对位置差...9 /** 10 * 系统级别悬浮窗,可以在手机桌面上显示的悬浮窗 11 */ 12 public class FloatWindowActivity extends Activity {...它总是出现在应用程序窗口之上。

    3.2K70

    你必须要掌握的Android冷启动优化

    下图显示为系统和应用程序的工作流程。 ?...Displayed Time 如上图一显示的Displayed Time,在Android 4.4(API级别19)及更高版本中,logcat包含一个名为Displayed的log信息,此值表示启动过程和完成在屏幕上绘制相应活动之间所经过的时间量...WaitTime:是startActivityAndWait这个方法的调用耗时; reportFullyDrawn 在某些特殊场景,我们可能不单单启动页的绘制完成回调时间就足够了,我们需要连启动页的闪屏广告接口数据成功回调之后才算一个完整的时间...Traceview和Systrace都是DDMS面板的工具,但是现在AS3.0以上的版本不再建议使用了,所以这里就不详述,如果有兴趣的同学,可以看我上一篇文章《Android应用优化之流畅度实操》,里面有详细地说明这两个工具的用法...的优化 布局优化 我们的启动页Activity包含有启动图控件、闪屏广告图控件、闪屏广告视频控件、首次安装介绍图控件。

    1.8K20

    Android性能优化(一)—— 启动优化,冷启动,热启动,温启动

    如果应用程序的所有activity存在内存中,则应用程序可以避免重复对象初始化、渲染、绘制操作。...两种方法: 禁用app启动时window预览的功能 在主题中为首屏activity添加一个注意,禁用window预览的功能,并在manifest中使用 <!...效果如下: 可以看到,我们点了一下app,系统竟然卡住了?!过了1秒多,app才启动起来??什么鬼?其实并不是系统卡住了,而是我们本来应该显示的空白预览屏幕不显示了,所以看起来好像卡住了。...但是并不是好的办法,接下来,我们往下看另一种方法。 给空白首屏Activity设置一个背景 在style.xml中给SplashActivity添加一个新主题,设置一个背景: 上,不管是首屏还是其他的activity或者fragment布局都应该尽可能的减少布局元素。注意有时候可能为了方便,布局中放了一些不可见或占位的控件,应该减少这种情况,因为他们也参与绘制过程的。

    26410

    TeaBot:以欧洲银行为目标的Android恶意软件

    该恶意软件最初出现时间是在2020年12月初,它伪装成“VLC_MediaPlayer”,“TeaTV”应用程序。...图4-1-3 支持6种语言 4.1.3 主要功能 4.1.3.1 跟踪记录 通过使用Android无障碍服务,TeaBot能够观察和跟踪用户在目标应用程序上执行的所有信息,并将关键的跟踪信息通过SharedPreferences...当其中有一个匹配时,它会下载特定的WebView以执行覆盖攻击,并开始跟踪用户在目标应用程序上执行的所有活动。这些信息都是每间隔10秒发送到指定的C&C服务器。...图4-1-8 启动截屏模块 4.1.3.3 覆盖攻击 覆盖攻击是一种Android银行木马(例如Anubis,Cerberus)普遍的技术手段,虚假的界面覆盖能够迷惑和诱骗用户信以为真,继而窃取用户的个人隐私...图4-2-5 第二次请求getkeyloggers 3)Uricontent:/api/getkeylogge TeaBot发送包含受感染设备上安装的所有程序包名称的JSON文件(未加密)的POST请求

    72930
    领券