2025年Android六边形战士开发趋势,需要掌握哪些技能可自我反省,从零基础到精通,收藏这篇就够了!

一、前言

从2007年Android到来到现在,已经来了17个多年头了,Android正式版也从Android 1.0 发展到Android 15,Android 16正式版今年也即将出来了。作为深耕Android开发的,现已经不是当年只会写写UI界面,用用第三方框架就可以了闯荡江湖了,需要向 六边形战士方向 发展并不断深入,当然六边形战士只是一个名词,Android实际涉及到的分支,可能不止6个,可以7个,8个或者更多。

其实Android并没有凉
只是现在要求Android开发需要懂得更多更深了,走向于学术分科阶段了

二、Android开发必备技能

  1. 掌握Java 基础,IO ,线程,网络,文件
  2. 掌握Kotlin基础,协程,Flow, Channel
  3. 掌握注解、注解处理器,APT , KAPT,KSP,KCP,SPI机制,反射等
  4. 掌握动态代理,Aspect, Javassist, ASM字节码插桩等面向切面编程
  5. 深入理解JVM的 运行时数据区,对象怎么分配,GC及调优方法,ART虚拟机和调优和ClassLoader加载器和字节码
  6. 掌握并发模型和内存 , 锁,CAS,原子变量, 线程池 ,AQS
  7. 理解基础数据结构和算法
  8. 深入理解IO模型,BaseIO,BIO,NIO,OKIO
  9. 深入理解网络(Http,Https,Http1.0,2.0,3.0,https加密原理,TCP,UDP,Socket及与FD关系
  10. 掌握C,C++基础,指针,IO, STL内存管理,线程管理等
  11. 掌握NDK,JNI,Cmake等相关知识
  12. 理解23种设计模式和生产消费者模式

三、万恶最卷的应用层

  1. Android原生XML布局,绘制流程,Jetpack 那一全套,不要放弃,翻开系统源码,系统App,如launcher,SystemUI等,至少再等过好几年,都不会用Compose
  2. 新一代声明式UI布局:Jetpack Compose及时跟进,还没跟上的加紧补进自己的知识库,
  3. 应用层UI层,大多数还是业务层,想要一直在应用UI层领域深耕,夸端就必须要掌握:
    1)Kotlin Multiplatform(KMP)Compose Multiplatform(CMP)Android 自带夸端方案技术跟进 2)Flutter已经成熟,随时进入都是好机会。

前沿技术: AI接入开发或者AI关联Android上部分开发

四、深入Framework系统层面与应用

  1. 深入理解Handler消息通信机制
  2. 深入理解Binder跨进程通信原理包含驱动分析,能够自己实现一套IPC跨进程方案
  3. 深入理解ServiceManager管理服务
  4. 掌握Zygote进程执行流程
  5. 理解AMS,PMS,WMS,IMS等
  6. 深入理解View的绘制流程,事件处理分发过程。
  7. 理解并吸取RecyclerView设计理念

应用场景与反省:

  1. 自己能修改AOSP源码并编译吗?
  2. 能胜任车载或者手机 launcher,SystemUI等的开发吗?
  3. 车载倒车影像开发,会?
  4. 车载智能导航定位开发,会?
  5. 车载多媒体应用,本地音乐,蓝牙音乐,在线音乐
  6. 智能AI识别小助手,车载上有,手机上面也有,比如:小爱同学
  7. 智能家居,智慧零售收银机,收银秤,串口,USB,蓝牙技术,分屏等。

五、所有的都离不开的性能优化

  1. Android app开发给客户留下印象的第一步,启动优化:
    1)app冷启动500ms能到第一个首页吗?
    2)app能在6年前的手机上秒开?
    3)拓展开自己的认知:离开手机端,现在还有很多智能家居,智能设备在用Android 5.0,Android7.0等, 它的CPU芯片水平还在16年中档次的手机芯片。
    4)拓展开自己的认知:智能终端启动同时展示多屏的启动优化难度远远大于单屏的手机启动优化
    5)拓展开自己的认知:和别的app对比启动优化不需要两个app复杂难度,数量级一样。只需要硬件设备一样就行。要有意识地向天龙八部扫地僧学习,带上2个人轻功依然可以秒杀其他人。
    6)拓展开自己的认知:大厂某些App在手机上很快,在某些终端平板上面仍然要2s左右,它还只是单屏

  2. 布局优化:
    1)减少布局套层,过度绘制,约束布局,帧布局,线性布局,merge标签使用:ViewStub 延迟化加载标签
    2)合理使用异步加载布局AsyncLayoutInflater,
    3)能够搭建一套提前加载布局框架
    4)利用工具查看布局层级及耗时:Android Device Monitor 中内置的一种工具 Hierarchy Viewer

  3. 内存优化:
    1)使用工具MAT,MemoryProfiler,systrace监控等
    2)掌握常见内存泄漏避坑点
    3)掌握频繁创建对象导致内存抖动的原理,涉及到JVM,STW机制及常见优化方案
    4)掌握修改对象引用类型,及JVM中标量替换,逃逸分析的实际应用
    5)掌握复用原理:包括线程池,对象池,各种池的合理使用
    6)拓展开自己认知:普通app大部分就连续用2~5个小时顶天了,然后划掉,回桌面玩其他的,或者锁屏放在口袋里,app就被释放了,这是手机上的app,要知道launcher app可能连续1个多月不关机,不重启,更有某些终端设备直接连接好电源线,24小时开着一直放着多条广告视频,10天半个月不关机。比如大型超市连续12个多小时,排队频繁操作收银,客屏还一直放着视频广告,有的甚至晚上都不会关机,监控着,对内存控制非常严格。

  4. APK瘦身:
    1)清理无用资源
    2)图片资源优化:压缩图片,使用svg,tinypng,不带alpha的jpg图片,使用shape,使用色彩方案等
    3)资源动态加载,皮肤加载,在线素材,模块插件化等
    4)lib库的优化
    5)使用7Zip来压缩资源
    6)代码混淆,资源混淆,使用微信AndResGuard对资源混淆并且压缩图片res等
    7)使用Facebook的redex优化字节码

  5. 网络优化:
    1)首先必须得认识到一点,不能通过写代码来改变信号源的信号强度
    2)弱网优化:压缩/减少数据传输量,利用缓存减少网络传输 ,针对弱网(移动网络), 不自动加载图片 ,界面先反馈, 请求延迟提交
    3)网络框架自身优化:http1.1–>http2.0—>http3.0

  6. 崩溃,异常捕获:
    1)掌握Framework中异常处理流程
    2)能够设计一套自定义Thread.UncaughtExcerptionHandler,用当前这个Handler嫁接系统的Handler进行处理异常的方案,即:比如友盟异常管理,bugly异常管理的Android端能够自己实现这一套方案。

  7. WebView优化:
    1)可以在初始化同时先请求数据,让后端和网络不要闲着,
    2)可以提前初始化Webview的相关设置,多个webview可以搞个Webview池子管理
    3)常用 JS 本地化及延迟加载,使用第三方浏览内核
    4)后端处理慢,可以让服务器分 trunk 输出,在后端计算的同时前端也加载网络静态资源
    5)脚本执行慢,就让脚本在最后运行
    6)DNS 和链接慢,想办法复用客户端使用的域名和链接

  8. 大图bitmap优化:
    1)可用luban压缩,条件好可以自研一套更好压缩算法,比如微信自己有一套 2)区域解码:只解码屏幕或者UI显示范围之内的图像数据

  9. 崩溃优化ANR方案
    1)懂崩溃ANR的原理
    2)理解常见ANR场景
    3)能设计出一套traces.txt文件监控方案并分析

  10. 电量优化:
    1)‌减少不必要的网络请求
    2)优化位置服务
    3)优化后台任务
    4)优化图像和动画
    5)避免后台服务常驻
    6)使用性能检查工具:可以使用Perfetto等性能检查工具来分析应用的耗电量和网络使用情况,并进行优化
    7)检测和优化Overdraw
    8)CPU优化:避免CPU时间片消耗异常,可以使用TraceView获取进程执行信息
    9)使用Battery Historian工具*:Battery Historian是Android 5.0之后Google开源的一款用于检测与电池有关的信息和事件的工具。它可以可视化分析各耗电模块的耗电情况,帮助开发者定位和优化耗电问题。

六、高端特殊功能,摄像头,图片处理,音视频及特效剪辑处理

当今短视频,直播天下,别相信已经了或者饱和了,现在短剧,爽剧天下又来了。所以这一领域还是有很大发展趋势

  1. 摄像头,图片处理,类似美颜相机,各种处理
  2. 音视频编码,解码,硬编,软编,混音,制作大片,特效处理,直播,投屏
  3. h264,h265,rtmp,rtsp,webrtc,openGl,FFmpeg

应用场景与反思:

  1. 抖音上面哪些剪辑特效,自己会写几个?
  2. 能手撸软编解码写一个音乐播放器或者视频播放器吗?
  3. 美颜相机里面处理撸一个吗?
  4. 音频处理均衡器,混响,过滤器,消音,抽取人声拿伴奏等能自己撸一个?

七、逆向安全

  1. ‌掌握DEX文件格式和字节码指令
  2. 熟悉Smali语言
  3. ‌Native部分:学习SO(ELF)文件格式,了解动态链接相关的链接逻辑,如rel、got、plt等section的定义
  4. 反编译工具:学习如何使用Jadx-gui、Jeb,Apktool、Dex2jar等工具分析APK,查找、跳转、调试、查看寄存器、函数调用栈
  5. 调试工具:使用IDA-pro进行SO分析,查找字符串、跳转函数、交叉引用跟踪、动态调试、查看内存、寄存器、函数调用栈‌
  6. 熟悉APK包的结构,识别代码和资源文件,分析应用的基本信息、引用的三方库、加固方案和技术栈‌
  7. 动态调试:使用Xposed框架进行Java层Hook,使用Frida进行动态调试,进行HTTPS抓包和加密算法识别‌
  8. Native层逆向:使用IDA Pro、Ghidra等工具进行SO文件逆向,进行OLLVM反混淆和加固脱壳‌
  9. 协议分析与功能破解:选择感兴趣的App进行协议分析和功能破解实战‌

总结

本文重点总结和分享了Android六边形战士开发趋势的各个小点:

写在最后:

只要还没有离开Android 这一领域,或者还没有转变在其他行业站稳脚跟,技术的学习与时俱进,活到老学到老
个人建议:不管你是初级,中级,还是高级,还是资深,中厂大厂都只是个平台,当你哪一天离开,或者被裁员了,那种平台给带来的影响力立马完全消失,但是自己掌握到的技能却永远不会消失。
东邪,西毒,南帝,北丐,中神通,并不是只有在华山之巅论剑才是五绝级别高手,他们任何环境下都是五绝级别高手。
多掌握点技能,成为大佬:离开了平台,闯荡江湖,依然是大佬
祝大家到点早点成为大佬。

网络安全学习路线&学习资源

在这里插入图片描述

网络安全的知识多而杂,怎么科学合理安排?

下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!

初级网工

1、网络安全理论知识(2天)

①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)

①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)

①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)

①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)

①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)

①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

“脚本小子”成长进阶资源领取

7、脚本编程(初级/中级/高级)

在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。

8、超级黑客

这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。

网络安全工程师企业级学习路线

如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。

一些我自己买的、其他平台白嫖不到的视频教程:

需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。

在这里插入图片描述

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:

此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!学习资料的推荐

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值