美文网首页Android开发Android开发经验谈Android开发
读懂底层,才是Android真正开始的时候

读懂底层,才是Android真正开始的时候

作者: 飞鱼_9d08 | 来源:发表于2020-03-20 17:56 被阅读0次

前言

对于android开发,我们大部分工作都是在应用层,但为了体现"技术含量",以及"知其所以然",以便在遇到具体问题时不至于束手无策,因此有必要了解底层的工作机制。

比如Android NDK 开发可能在平时的项目开发中不常用到,但是这并不代表其不重要。相反NDK的学习有助于加深开发者在阅读框架的源码理解,是Android开发人员的进阶过程中必须要掌握的技能。

为什么NDK越来越重要了?

一是短视频、直播等行业迅猛发展。音视频+社交成为流量新的增长点。近两年,短视频、直播、网络视频等行业不断爆热,其中抖音一骑绝尘,日活已破2.5亿,替代QQ/微信登上19年猪年春晚,成为又一国民级APP。

二是新一轮技术如人工智能、5G、物联网等新技术的融合发展,将不断寻找实用落地点,这在移动为王的年代,80%市场份额的安卓是最大受益者。据运营商消息,2019年下半年,5G手机在国内上市,2020年全面商用,届时音视频将迎来又一波热潮。

而在实际具体应用上,除了上面提到的短视频方向,还有各大视频应用,图像处理、滤镜、裁剪等等骚操作都是需要专业的音视频开发知识才能做出来的。

那么,怎么开始NDK的学习?

我们知道NDK的领域越来越广泛,作为机器学习、AI移动端落地都需要使用C和C++编译的库函数。

举个简单的例子,原来加载图片一般使用Universal-Image-Loader或者Picasso这些,但Facebook做的图片加载库fresco性能秒杀之前的所有图片库,在部分数据上甚至可以达到一个数量级的性能提升,那Facebook是怎么做到的?

它使用了之前图片库没有使用过的匿名共享内存(Ashmem,Anonymous Shared Memory),这部分内存不在Android的GC范围之内,需要自己管理,但通过这种方式可以突破Android分配的堆内存限制,极大的提高效率,对于Ashmem的使用完全是通过C++实现,更别提很多核心算法,多媒体库等等都是用NDK做的。

其实也不止C++,很多时候也要求助于Framework和架构重构。归根到底只想说明一点,如果只是做个普通的Android码农,那Java够用,但如果你的理想比这个还要大一点,C++是你进阶的必备技能。

当然,我们NDK并不好学,啃起C++就想起大学时的美好而难忘的时光。而在996成为惯例的互联网企业,我们也没办法抽出大量时间摸索着学习,试错的成本难以估量,这时候借助一些成功的经验无可厚非。

相关文章

  • 读懂底层,才是Android真正开始的时候

    前言 对于android开发,我们大部分工作都是在应用层,但为了体现"技术含量",以及"知其所以然",以便在遇到具...

  • 读懂底层,才是Android真正开始的时候

    前言 对于android开发,我们大部分工作都是在应用层,但为了体现"技术含量",以及"知其所以然",以便在遇到具...

  • 不行的时候才是真正的开始

    有时候经常很困惑,觉得自己懂得的道理也不少,可是仍然对目前自己的状态不是很满意。上次看了一篇文章,讲的是所罗门悖论...

  • 什么时候才是真正的开始

    前人告诉我们,从什么时候开始都不晚,于是,我便有了无数个开始。

  • 家书——不行的时候才是真正的开始

    稻盛老先生说他的成功率是百分之百,我想即使是他,这样的成功率背后肯定是经历的各种尝试与失败才有的结果。杨总说...

  • 认为不行的时候,才是真正的开始

    姓名:单国英 部门:尚简学习会 组别:谦虚二组 【知~学习】 六项精进大纲诵读0遍,共130遍 六项精进通篇诵读遍...

  • 读懂自己

    真正读懂自我, 真正读懂自己的欲求, 真正读懂自己的情绪, 真正读懂自己的苦乐, 真正读懂自己的思维习性… 也就真...

  • 重读《庄子·心得》(一)

    年轻的时候读不懂庄子,读懂的时候才发觉庄子才是真正的智慧之人。 在教授《逍遥游》之前,重读了于丹《庄子》心得。记得...

  • 加油吧

    真正痛苦的日子才是开始的时候,压抑的情绪得不到释放,努力改变自己才是生活真正赐予自己的力量

  • 如何读懂作者的内心

    读书就是读人,通过读读懂作者的内心,读懂那个时代,这才是真正的阅读,平时的阅读都是流于表面的文字。低效而没有太多...

网友评论

    本文标题:读懂底层,才是Android真正开始的时候

    本文链接:https://www.haomeiwen.com/subject/mhjtyhtx.html