首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

面试官:今日头条启动很快,你觉得可能是做了哪些优化?

二、启动优化 直奔主题,常见的启动优化方式大概有这些: 页优化 MultipDex优化(本文重点) 第三方库懒加载 WebView优化 线程优化 系统调用优化 2.1 页优化 消除启动时的白屏/...2.2 MultiDex 优化(本文重点) 说MultiDex之前,先梳理下apk编译流程 2.2.1 apk编译流程 Android Studio 按下编译按钮发生了什么?...(使用工具apkbuilder) 使用签名工具给apk签名(使用工具Jarsigner) 对签名的.apk文件进行对齐处理,不进行对齐处理不能发布到Google Market(使用工具zipalign...需要注意的是页的Activity,包括页中引用到的其它类必须在主dex中,不然在MultiDex.install之前加载这些不在主dex中的类会报错Class Not Found。...所以这种方案的缺点很明显: MultiDex加载逻辑放在页的话,页中引用到的类都要配置在主dex。

1K30

Android 启动优化详解

点击桌面图标无响应: 原因:theme中禁用预览窗口指定了透明背景 //优点:避免启动app时白屏黑屏等现象 //缺点:容易造成点击桌面图标无响应 //(可以配合三方库懒加载,异步初始化等方案使用,减少初始化时长...优化: 预览(今日头条),预览窗口实现成效果,高端机上体验非常好,不过低端机上会拉长总的时长(建议在Android6.0以上才启用此方案); //优点:避免点击桌面图标无响应 //缺点...Dex文件用的到的类和安装APK里面各种资源文件一般都比较小,但是读取非常频繁。...子线程install(不推荐): 页开一个子线程去执行MultiDex.install,然后加载完才跳转到主页, 需要注意的是页的Activity,包括页中引用到的其它类必须在主dex中,...) 快开慢开比,如2秒快开比、5秒慢开比 90%用户的启动时间 区分启动类型: 首次安装启动、覆盖安装启动、冷启动,温启动,热启动 热启动的占比也可以反映出我们程序的活跃保活能力 除了指标的监控,启动的线上堆栈监控更加困难

5.1K85

启动优化

点击桌面图标无响应: 原因:theme中禁用预览窗口指定了透明背景 //优点:避免启动app时白屏黑屏等现象 //缺点:容易造成点击桌面图标无响应 //(可以配合三方库懒加载,异步初始化等方案使用,减少初始化时长...优化: 预览(今日头条),预览窗口实现成效果,高端机上体验非常好,不过低端机上会拉长总的时长(建议在Android6.0以上才启用此方案); //优点:避免点击桌面图标无响应 //缺点...Dex文件用的到的类和安装APK里面各种资源文件一般都比较小,但是读取非常频繁。...子线程install(不推荐): 页开一个子线程去执行MultiDex.install,然后加载完才跳转到主页, 需要注意的是页的Activity,包括页中引用到的其它类必须在主dex中,...) 快开慢开比,如2秒快开比、5秒慢开比 90%用户的启动时间 区分启动类型: 首次安装启动、覆盖安装启动、冷启动,温启动,热启动 热启动的占比也可以反映出我们程序的活跃保活能力 除了指标的监控,启动的线上堆栈监控更加困难

3.4K54

Flutter项目 安卓 运行时退解决方案

问题 Flutter在安卓上无论是debug还是release打包安卓 均退....通过 Flutter build apk --target-platform android-arm64 编译, 将打包完apk文件安装只Andriod studio自带的模拟器, 打开直接白屏退..., 依旧没有找到结果, 所以我描述下我的解决过程: 解决 adb命令在Android开发中有很大的作用, 在Mac上可以通过命令brew install android-platform-tools来安装...安装完成, 可以使用adb logcat命令来获取Android设备运行时的信息, 当然我们也可以接触Linux自带的管道来实现只输出我们需要的软件输出的信息. adb Logcat | grep '...6g==/lib/arm64, /data/app/~~lpf0gkKIxGn4DY5SDipRCQ==/cn.timemail.xsot-6iySuHaHWmt3KWAuFdX_6g==/base.apk

5.6K20

最新React Native环境搭建(从0到打包APK)

创建新项目 react-native init ProjectName 3. yarn start 安装 EXPO 脚手架 什么是EXPO Expo是通用React应用程序的框架和平台。...全局安装 EXPO 推荐用 yarn 安装// npm install --global expo-cli (当时用npm,安装了半个小时,也没安装完......) ​ 2....当你想打包你的App 成APK 文件: 你可以是使用EXPO 提供的 指令: expo build:android 打包的时候,会需要EXPO的账户, 因为它会发布到你EXPO账户下,生成APK 文件...光说不练 纯耍流氓,下面为EXPO 操作演示 创建项目 下载依赖会需要一段时间 EXPO 项目介绍 启动项目 yarn start 启动成功,它会开启一个服务,会自动打开一个网页,在这个网页中...打包成功,它会提供一个链接,去这个链接你就可以下载打包APK 文件 ​ 下载APK 显示效果 到此该结束了 本章介绍了,如何配置React Native 环境, 以及EXPO 神器如何使用,

4.1K00

解决 APP启动白屏黑屏问题

页简介 页,我们手机上的每个 APP 几乎都有自己的页,就是在真正进入程序前,会有一个页面停顿几秒钟。其实我们完全可以充分利用好这几秒钟做很多的程序初始化了启动。...为什么我的 APP 启动会白屏或者黑屏 有时候我们会发现,我们在启动我们自己的 APP 的时候,总是有那么点时间是白屏(黑屏),经过了白屏(黑屏)才会进入我们的 APP。那么这是为什么呢?...模拟效果 下面我们模拟一下白屏的效果 可以看到打开 APP 的时候会有白屏的现象出现,当然我的这个演示 APP 程序没有那么复杂,因此我为了实现这种效果,就在 Application 中做了个睡眠。...出现在应用程序进程创建并且初始化完成之前,是个临时的窗口,对应的 WindowType是 TYPE_APPLICATION_STARTING 作用就是告诉用户,系统已经收到我们的操作了,正在对程序进行初始化,只要初始化完毕就会移除这个窗口...所以其实我们看到的白屏或者黑屏就是 StartingWindow,那么为什么是白色或者黑色呢?

2.8K20

Android日常开发问题总结:这些问题火候不够,随时变成删库跑路!

可以改为另外的activity里面的getString方法获取 5.魅族7.0的系统在webview中点击退 ActivityManagerForce removing ActivityRecord...12.分享链接至微信无法显示链接的缩略图 友盟分享链接如果内容中带有红包字样,那么图片会失效显示不出来(分享的主体倒是可以自己看到) 13.小米手机上的App使用浏览器打开尾缀带apk的地址无法正常下载安装...关闭小米手机上的迅雷下载组件的功能,则可以通过点击push正常安装,不会出现文件无法识别的问题。 所以解决这个问题的很简单,把下载地址换成非apk结尾的地址即可。...特殊情况:如果整个页面是加载的H5,即便使用了上面的设置,还是会有白屏而过的情景。...这是H5页面本身渲染导致的,那么目前的处理方法是针对启动页做个延时dismiss的效果,这样就遮盖了白屏而过的瞬间: fullLoadingView.postDelayed(new Runnable

1.3K30

最新React Native环境搭建(从 0 到 打包APK)

创建新项目 react-native init ProjectName 3. yarn start 安装 EXPO 脚手架 什么是EXPOExpo是通用React应用程序的框架和平台。...全局安装 EXPO 推荐用 yarn 安装// npm install --global expo-cli (当时用npm,安装了半个小时,也没安装完......) 2....当你想打包你的App 成APK 文件: 你可以是使用EXPO 提供的 指令:expo build:android 打包的时候,会需要EXPO的账户, 因为它会发布到你EXPO账户下,生成APK 文件...” 光说不练 纯耍流氓,下面为EXPO 操作演示 创建项目 下载依赖会需要一段时间 EXPO 项目介绍 启动项目 yarn start ★启动成功,它会开启一个服务,会自动打开一个网页,在这个网页中...” 打包成功,它会提供一个链接,去这个链接你就可以下载打包APK 文件 下载APK 显示效果 到此该结束了 ★本章介绍了,如何配置React Native 环境, 以及EXPO 神器如何使用

3.1K30

Windows10系统安装solidworks2016使用激活工具注册机退卡死不动解决方法总结

最近帮朋友装了个Solidworks2016版本的,按照安装教程给出的步骤一步一步走下来都没问题,到最后使用激活工具激活的时候,一直退,然后查了查资料,挨个方法都试了没有用,最后发现是自己的问题,必须耐心等...2.将破解工具(SW2010-2016.Activator.GUI.SSQ.exe)挪到桌面运行,最好挪到solidworks安装的文件夹进行破解。...3.找到C盘里面的隐藏文件ProgramData→FLEXnet→SW_D_00481b00_tsf.data和SW_D_00481b00_tsf.data_backup,将两个文件删除破解,如何查看隐藏文件自行百度一下...8.最后这个比较重要,就是关于运行环境,要把net framework 3.5打开再破解。...最后再说一下,如果显示未响应,或者没反应,但是鼠标哪里在转圈圈,建议一定要等,因为solidworks毕竟10个G呢,所以耐心等待一会,如果十分钟还没反应,那就付费找人解决吧。

35.6K10

Android-App性能优化

还有就是刷新,刷新的话尽量减少不必要的刷新和尽可能减少刷新面积 启动优化 冷启动 冷启动是指安装apk后首次启动应用程序,或者应用程序上次结束,进程被杀死后重新打开app....,这也是为什么启动app会出现白屏,这个问题,我也有提到过解决方式Anroid 白屏 Activity的创建 当Application首次启动完成绘制,我们的UI线程会执行主活动进行以下操作:...如果应用程序的Activity仍然驻留在内存中,那么应用程序可以避免重复对象初始化、布局加载和渲染,但系统依然会展示页,直到第一个 Activity 的内容呈现为止。...小 小大多指应用程序apk体积要小。...:乐固加固,360压缩啥的;还有注意不要重复使用库;插件化,比如功能模块放在服务器上,按需下载,可以减少安装包大小等都是常见的减少apk体积的方式。

2.1K40

【技巧】ionic3优雅解决启动前、白屏问题

具体操作时,当我们点击桌面图标启动APP时,有时会一下黑色背景,有时黑色背景时间还比较长。...所以解决方式有好几种,可以看这两篇文章: Android启动页优化,去黑屏实现秒启动 Android启动页黑屏及最优解决方案 具体应用在ionic上可以参照这个: 快速解决ionic安卓主题启动时短暂的黑屏白屏问题...我这里定义了两个样式,来满足不同喜好,使用时二选一就行了:第一个样式,screen.png作为ioniccordova默认生成的启动图片,于是使用screen.png为背景图;第二个样式为透明主题。...然后安装该插件: ionic cordova plugin add 本插件本地远程路径 验证一下,会发现在platform目录android里的res/values里会多出styles.xml文件。...3)安装cordova-custom-config——用于修改启动页Activity的主题样式为上述的自定义样式WelcomeStyleAppwelcome。

3.5K60

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

WaitTime:是startActivityAndWait这个方法的调用耗时; reportFullyDrawn 在某些特殊场景,我们可能不单单启动页的绘制完成回调时间就足够了,我们需要连启动页的广告接口数据成功回调之后才算一个完整的时间...PS:这个方式minSdkVersion需要API19+,所以要对SDK版本进行设置判断。...<activity ··· android:theme="@style/AppBaseFrameTheme"/> 通过对启动页的主题设置,就会将白屏/黑屏抹去,用户点击App的图标就展示启动图...需要你在跟同包名进程下进行初始化; 其实有好多项目,经过多年的版本迭代都是没有整理过代码的,那些旧代码、无用代码都是需要归类整理的; 启动页Activity的优化 布局优化 我们的启动页Activity包含有启动图控件、广告图控件...、广告视频控件、首次安装介绍图控件。

1.7K20

健康码如何通过监控提升小程序的用户体验?

“客户反馈小程序白屏了!”。 收到该用户反馈。历经数小时,工程师才定位并处理了问题。这不禁让人思考,该如何提高定位问题的效率?...卡顿/退:一般有历史查询类场景会遇到长列表页面查询卡顿,滚动不流畅,随着历史消息加载,小程序出现退等问题。 这些问题带来了极低的用户任务完成率,无法满足用户诉求,极大降低用户留存。...确定选用 RUM ,某省健康码项目组快速联系上了 RUM 团队,并开始安装和使用 RUM。...一、白屏问题处理 接入 RUM ,同样出现的客户反馈白屏情况,基于反馈信息并使用 RUM 日志查询功能,即刻就定位到了异常出错点。...二、JS/ Ajax等问题处理 除上述客户主动反馈白屏快速定位分析问题外,也可主动分析发现一些如 JS Ajax 等的问题并做处理。

1.3K80

Fiora 构建指南

切换完成再运行上述命令来检查是否生效,如果没有生效,可以尝试重启服务器,并且在完成切换,需要重新安装 yarn、安装依赖、构建客户端开始构建伺服器配置指南虽然 Fiora 对配置的要求不高,但它并不是没有门槛...# 查询 Node.js 版本node -v# node --version图片因为这关乎到你所安装的 yarn 以及后续的构建的成功与否,如果不是 v14,请务必切换为 v14图片在这之后,我们需要确认是否有....aab 格式的安装包了,没错是 .aab 而不是 .apk,所以我们需要第二次构建,在第二次构建前,我们需要去到 /fiora/packages/app 目录内,编辑一个 eas.json 的文件,...eas build -p android --profile preview再经过10分钟的等待,就完成了对 App 的构建,并且可以下载 .apk 格式的安装包了,它甚至帮你自动签了名。...and devices:https://docs.expo.dev/build-reference/apk/

22920
领券