- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 两周学习ubuntu编译ffmpeg后的建议
第一条网上挺多教程的,新手多看几篇学习流程,以及学习一下里面的编译脚本命令。特别注意的是:ffmpeg保持一致、ndk保持一致。Ubuntu+Vmware没有特别要求。不同版本的FFmpeg跟不同的ndk有很多组合,尽量不要自己随便去组合,减少不必要的错误。第二条网上很多教程中的编译脚本整体结构差不多,但是有很多坑。每个作者的变量命名可能不一样,然后版本不一样,变量的赋值也不一样。所以千万不要自己随便去修改,不要把这个作者的脚本跟另外作者的脚本进行混合。要先查找资料,理解变量的意义。第一条和第
2022-02-23 14:12:15
2023
原创 Loadermanager
1、LoaderManager.getInstance(this).initLoader(BASE_LODER_ID,null,this);a)getinstance()方法返回的实例对象的类型是loadermanagerimplement。b)loadermanagerimplement.initLoader()方法:其中核心方法:直接调用callback的onCreateLoader()方法生成loader对象。然后把loader对象封装成LoaderInfo对象。然后调用LoderIn
2021-05-20 11:10:52
613
原创 SparseIntArray源码分析
SparseIntArray是安卓SDK用来替换hashmap的类。机制一:避免自动装箱和额外的entry类存储数据,即减少内存开销;这是SparseIntArray的优势。机制二:使用两个数组存储key和value,其中key数组为有序表且已二分查找算法查找(核心代码);查找效率自然没有hashmap高,这是劣势。虽然效率稍低,但在数据一百以下的少量数据的情况下效率还是持平的;而安卓应用大部分场景的数据都是偏少的,所以这个类就非常符合安卓应用。这也就是为什么它能代替hashmap。下面截几张源码,
2020-12-09 20:33:30
333
原创 Bitmap的decode底层源码流程分析。
研究c++源码之前要先细读一下BitmapFactory.Options的几个关键属性的注释。核心:其实这个类就是BitmapFactory加载bitmap的一个配置(没看到可以自己去研读注释)。inDensity:;当前配置中设置的密度大小;decodeResource方法下默认取图片所在目录的密度大小。inTargetDensity:预期加载一个inTargetDensity密度大小的bitmap,这个bitmap按理是会被绘制在同样密度的Canvas上,decodeResource方法下默认取屏
2020-11-23 20:48:44
944
原创 AndroidRuntime.cpp的start方法-从c++到java世界之路
总结start主要完成的操作有jni_invocation.Init()方法初始化jni接口startVm()方法创建虚拟机startReg()方法注册Android方法CallStaticVoidMethod()方法打开ZygoteInit类的main方法。完成从c/c++到java代码。
2020-11-20 19:54:56
766
1
原创 android gradle plugin 升级到3.6.1的艰难之路。
没有aapt2.3.6.1:xxxx的缓存.首先了解一下Aapt。aapt是androidstudio资源打包的工具,打包的资源包括assets目录和res以及androidmenifest.xml。aapt2是aapt的升级版。aapt是全量资源打包,即使只有一个资源文件的更改都会进行全部资源的重新打包流程。aapt2采用增量打包方式,流程分为编译和链接两步。修改某个文件后只需要对这个资...
2020-04-23 15:44:51
1169
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅