admin管理员组文章数量:1530068
前言
最近在学习FFmpeg和音视频的相关知识,为了加强对FFmpeg的认识和了解,于是撸了一个短视频编辑软件Cut。
效果图先行:
技术点
启动页优化
但启动app的时候会有一个短暂的黑屏或者白屏。为什么呢? 是因为在App启动时,系统会执行3个Task:
1、 加载并启动app
2、在app启动后,立即展示空白的window
3、创建app进程
一旦app进程完成了第一次绘制,系统进程就会用main activity替换已经展示的background window。之后用户才可以使用app。
这个空白的window就是导致白屏或者黑屏的罪魁祸首。怎么解决呢? 1.定义透明的主题,parent中的AppTheme为APP的主题
<style name="Theme.AppStartLoadTranslucent" parent="AppTheme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
</style>
<!-- 启动界面 -->
<activity
android:name=".ui.LaunchActivity"
android:launchMode="singleTask"
android:theme="@style/Theme.AppStartLoadTranslucent">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
启动页优化原理
增量更新和全量更新
在App用了增量更新。
增量更新:增量更新是指在进行更新操作时,只更新需要改变的地方,不需要更新或者已经更新过的地方则不会重复更新,增量更新与全量更新相对。
使用的是bsdiff、 在bspatch中还会用到bzip2.
增量更新的流程:下载差分包,手机上的apk和差很包合并形成新的apk,然后再次安装。
DownloadUtil.get().download(appPath, savePath, saveName,new DownloadUtil.OnDownloadListener() {
@Override
public void onDownloadSuccess(File file) {
if(file != null){
mProgressDialog.dismiss();
LogUtil.e("tag", "---path = " + file.getAbsolutePath());
if(update_type == 1){
//获取当前应用的apk文件/data/app/app
版权声明:本文标题:基于FFmpeg的短视频编辑工具Cut 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1726606840a1077650.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论