当前位置:网站首页>技术水平真的很重要,附超全教程文档

技术水平真的很重要,附超全教程文档

2021-09-15 06:46:33 mb612e2e66047a8

最近很多人说,Android越来越不好找工作了,学习NDK开发会不会好点,今天就聊聊这个问题。是否应该选择学NDK?

1.哪些场景下要用到NDK开发?

跨平台的库,如FFmpeg, skip,weex,
加固,防逆向
签名校验
图片压缩
音视频解码
OpenGL ES 高级特效
热修复 andfix
人脸识别 face++
加密算法
微信apk中的so文件

技术水平真的很重要,附超全教程文档_Android

手机淘宝apk中so文件

技术水平真的很重要,附超全教程文档_移动开发_02

2.NDK开发,和JNI开发有什么区别?

JNI是JAVA NATIVE INTERFACE, JNI只是一个中间层。JNI中要用c/c作具体实现。达到c/c与Java通信的作用。不一定要编译成so文件,才叫JNI开发。也不是Android上才有,Java程序员一样可以做JNI,不会写Activity也可以。Java最简单Main函数,可以声明一个Native方法,在VS中,写一段c/c++代码,按照JNI规范。编译成dll文件,放到Java工程中,一样可以执行。而so是只是不同平台动态链接库的产物,因为Android是基于linux平台。

?

3.有没有必要搞NDK开发?

如果你的业务和NDK开发应用场景不是很有关联,可以不用搞,也是合理的。毕竟Java及Android中还有很多你不会玩的。如插件化(纯Java可以搞),如性能优化,如高级自定义控件,如源码学习等等。光这些够折腾好久了。把这些玩会了,你也是专家了。

当然,你如果业务有关联。如Camera美颜,滤镜,音视频等,如果要进阶,NDK不用多说,肯定要会玩的。NDK本质上玩的是c/c++,所以就需要好好学习c/c++,如虚函数,虚析构,虚基类,智能指针,宏函数,宏定义,结构体,共用体,运算符重载,指针,这些基本的c++相关。面向对象在任何语言中都受用。

?

4.如果要学,怎么学?

1.Google官方NDK
2.老外有一本:Android NDK Beginner’s Guide
3.网上的blog最后看系统的,要么就不看,不然东写一篇,西写一篇,没有系统的线路,对初学者帮助意义不大。
4.JNI Specification.chm 这个手册,很方便查询
5.The Java? Native Interface Programmer’s Guide and Specification

把JNI熟悉之后,然后写一些小案例,达到熟悉程度,可以在看一些与C/C进阶的书,如,Effective c,深入理解c++对象内存模型,STL源码剖析,这些书之类。

尾声

 CodeChina开源项目地址:Android学习PDF+架构视频+面试文档+源码笔记

开发是需要一定的基础的,我是08年开始进入Android这行的,在这期间经历了Android的鼎盛时期,和所谓的Android”凉了“。中间当然也有着,不可说的心酸,看着身边朋友,同事一个个转前端,换行业,其实当时我的心也有过犹豫,但是我还是坚持下来了,这次的疫情就是一个好的机会,大浪淘沙,优胜劣汰。再等等,说不定下一个黄金浪潮就被你等到了。

  • 330页 PDF Android核心笔记

技术水平真的很重要,附超全教程文档_Android_03

  • 几十套阿里 、字节跳动、腾讯、华为、美团等公司2020年的面试题

技术水平真的很重要,附超全教程文档_Android_04

技术水平真的很重要,附超全教程文档_Android_05

  • PDF和思维脑图,包含知识脉络 + 诸多细节

技术水平真的很重要,附超全教程文档_移动开发_06

  • Android进阶系统学习视频

技术水平真的很重要,附超全教程文档_移动开发_07

版权声明
本文为[mb612e2e66047a8]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15350520/3888128

随机推荐