华子dev

大道至简

本篇文章为公司内部分享时所写,基于的 flutter 版本也已过时,所以可能有不对的地方,还请指出。现在放到博客上,以后有机会再完善。

前言

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。
Flutter 具有以下特点:
快速开发,毫秒级的热重载,修改后,您的应用界面会立即更新。
统一的应用开发体验
原生性能
目前已经有不少大公司开始将flutter应用在项目中,比如,闲鱼、美团等,也得到了不错的反馈。
https://github.com/alibaba/flutter-go
文章暂时比较简单,之后各个模块可以细化

Read more »

封装格式

我们经常看到有不同后缀表示的视频:avi,rmvb,mp4,flv,mkv等等。这些格式代表的是封装格式。何为封装格式?就是把视频数据和音频数据打包成一个文件的规范。仅仅靠看文件的后缀,很难能看出具体使用了什么视音频编码标准。

我们可以通过视频的属性查看该视频文件采用的视音频技术。或者MediaInfo软件查看。

封装格式的主要作用是把视频码流和音频码流按照一定的格式存储在一个文件中。
主要的封装格式:

audio_video_table.png

Read more »

AsyncTask 封装了线程池和 handler,主要hi为了方便开发者在子线程中更新UI。
HandlerThread 是一种具有消息循环的线程,他的内部可以使用 Handler。
IntentService 是一个服务,系统对其进行了封装,以便执行后台任务,IntentService 内部采用 HanderThread 来执行任务,当任务完成后会自动退出 IntentService,他是一种服务,不容易被系统杀死从而尽量保证任务的执行。

Read more »

在 web 开发中用的,网页布局有个流式布局的概念,自动换行,并且可以自适应,使用起来很方便。但是一开始 Android 系统中是没有这种布局的,之所以说一开始是因为后来谷歌出了个库实现了这个功能,它就是 FlexboxLayout。这个库功能比较强大,支持多种布局方式,并且还有 FlexboxLayoutManager 可以搭配 RecyclerView 使用。

Read more »

IPC 是 Inter-Process Communication 的缩写,含义为进程间通信或者跨进程通信,是指两个进程间进行通信的过程。

线程是 CPU 调度的最小单元,同时线程是一种有限的系统资源。进程一般是指一个执行单元,一个进程可以包含多个线程。一个进程可以只有一个线程,即主线程。
多进程分为两种,第一种情况是一个应用因为某些原因自身需要采用多线程模式来实现,另一种情况是当前应用需要向其他应用获取数据。

Read more »

1. Activity 生命周期的全面分析

正常生命周期

  • onCreate: 表示 Activity 正在被创建
  • onReStart: 表示 Activity 正在被重新启动。一般情况,当前 Activity 动不可见变成可见状态时,onReStart 就会被调用。当前 Activity 执行 onPause 和 onStop 暂停后,又回到了这个 Activity 后就会调用这个方法。
    Read more »

本文来自 MultiType 作者 Drakeet。 之所以保存转载主要有两个原因,首先因为这是一个很好的库,其次这篇文章也是一篇很值得学习的文章,不管是从代码设计思路,还是文章的写作风格上,都让我受益匪浅。由于作者因为一些原因删除了 Github 上的这篇文章,因此转载保存方便日后查找学习。如有侵犯,请联系我,我会第一时间删除。

Read more »

Android 设备作为移动设备,不管是内存还是 CPU 的性能都受到了一定的限制。鉴于此,Android不能无限制的使用内存和 CPU 资源,过多的使用内存会导致内存溢出,即 OOM。而过多的使用 CPU 资源,会导致手机变得卡顿,甚至出现程序无响应的情况,即 ANR。因此,Android 程序的性能问题变得异常突出。这也要求我们再平常的编码中注意性能优化。而优化的前提是能明确的知道那种情况会导致性能出现问题。下面就总结一下性能优化的一些方法。

Read more »
0%