还在等机会?写给安卓软件工程师的3条建议,大厂面试题汇总

还在等机会?写给安卓软件工程师的3条建议,大厂面试题汇总,第1张

概述前言:与其每天浑水摸鱼、浑浑噩噩,不如多进阶学习,提升自己的竞争力。Android中高级必会知识点:一、性能优化1、APP稳定性优化1.做过哪些稳定性方面的优化?2.性能稳定性是怎么做的?3.业务稳定性如何保障?4.如果出现异常,怎样快速止损?2、APP启动速度优化1.启动优化原理是什 前言:

与其每天浑水摸鱼、浑浑噩噩,不如多进阶学习,提升自己的竞争力。

AndroID中高级必会知识点:一、性能优化1、APP稳定性优化

1.做过哪些稳定性方面的优化?
2.性能稳定性是怎么做的?
3.业务稳定性如何保障?
4.如果出现异常,怎样快速止损?

2、APP启动速度优化

1.启动优化原理是什么?
2.是怎么异步的,异步遇到过什么问题吗?
3.启动优化有哪些容易被忽略的地方?
4.版本迭代导致的启动变慢有好的解决方式吗?

第一阶段:AndroID 基础知识回顾:

回顾AndroID 开发编程,深入理解AndroID系统原理和层次结构,深入分析Handler源码和原理;回顾Java,C/C++,Kotlin、dart 在AndroID开发中必用的语言,熟悉一下几种语言混淆后的特性;回顾AndroID IPC和JNI的底层原理和热更新技术回顾Native开发要点,使用C++结合NDK完成AndroID Native开发;回顾AndroID开发中常用的 AMS、PMS、WMS原理和App启动中服务加载的流程;回顾AndroID开发中必用的 Google的MVVM框架:DataBinding+liveData+viewmodel;回顾AndroID开发中必用的 Google的MVP框架:Dagger2;回顾AndroID开发必用的网络架构:Okhttp3+RxJava2+Retrofit2+Rxdownload4+Rxcache+GlIDe;

AndroID 逆向基础知识:

熟悉AndroID逆向工具的使用,如apktool,IDA,dex2jar,JEB,AndroIDkiller,androguard等;深入分析APK中包含的各文件格式,分析AndroID系统源码中解析APK的相关代码;学习和熟悉smali语言(重点);仿微信写一个APP,并利用工具逆向出apk内的代码,并对比源码分析。

入门知识总结和实战(逆向入门):

知识梳理,常用工具安装,adb命令与linux常用命令,常见登录逻辑分析;分析ELF可执行程序,调式ELF可执行程序;ARM汇编与寄存器,ARM反汇编速成,ARM指令机器码,常用ARM指令集;反编译ELF文件与ObjDump,ELF文件解析与readelf,ELF文件解析与010Editor,深入分析ELF文件结构;IDA静态分析,IDA动态调式;简易计算器实现及分析(练习);字符串加密与解密,冒泡排序算法分析;关键androID_server文件检测,IDA调试端口检测;ELF可执行程序加载so库,DEX解析与dexDump,DEX解析与010Editor;实现自己的Dex解析工具与GDA(练习);AndroIDkiller动态调试smali代码插件,AS+smalIDea调式smali代码;Log注入实现免注册,如何定位关键代码,去除java层签名验证,去除广告和d窗(实战);推荐阅读《AndroIDXXXXXX……》随便找本系统源码讲解的书看看吧;

AndroID 基础算法和安全协议:

密码学,对称加密算法,非对称加密算法,散列函数;数字签名,数字证书,SSL证书检测,协议与安全协议;了解服务器端与客户端通信协议分析;使用Charles抓登录封包和验证码,协议构造与Java层MD5算法,动态调式smali代码与sign字段;协议构造类与SO层DESCBC算法,协议关键字段SIGN与SO层MD5算法,动态调试协议字段,动态调式协议关键字段SIGN;协议关键字段pwad和sign,动态调式协议字段拼接与MD5加密,分析so层OpenSSLSHA1算法;封包加密与反编译失败,使用方法跟踪分析加密;java层逆向分析,分析so层TEA算法;练习:抓取验证码和登录封包,分析协议关键字段与RSA算法,证书与RSA原理及源码分析;对称加密AES、PBE与CRC算法,数字签名RSA、DSA算法;

第二阶段:AndroID 逆向进阶学习:

AndroID 系统结构深入分析,自定义 ClassLoader,自定义注解和元注解原理分析;了解AndroIDNDK,静态注册,动态注册,SO加载分析,App保护策略去除霸哥磁力搜素APK签名验证,一键去除签名验证,静态代{过}{滤}理,动态代{过}{滤}理Hook Activity启动函数,Hook签名验证函数介绍xposed框架:Xposed框架:绕过验证码注册Xposed框架:登陆劫持Xposed框架:篡改IMEI信息介绍CydiaSubstrate框架:Java层Hook:篡改系统文字颜色Java层Hook:修改方法返回值绕过登录Java层Hook:篡改游戏金币Java层Hook:篡改主机名和端口号Native层Hook:ADBI框架:ELFARMHOOK框架内存抠取Dex文件过反调试技巧C++游戏逆向练习:动态调试2048纯算法游戏,Zygote+Hook使2048游戏秒过关;

AndroID NDK与JNI全面剖析:

so动态库的介绍JNI动态注册和静态注册NDK Build 工具介绍Cmake工具介绍JNI.h介绍AndroID 源码工具和技巧ijkplayer 源码分析及原理讲解AndFix 源码分析及原理讲解Java调用so库的动态流程解析NDK实现增量更新案例:NDK实现换脸等工业级图像识别案例:NDK文件实现拆分和加密处理

AndroID 加固防护和脱壳简介:

DEX文件、ODEX文件与OAT文件;XML文件与ARSC文件;分析App加固的产生及背景,最初加固方式,加固技术的发展;HOOK制作脱壳机,定制自己的脱壳系统;DexClassLoader动态加载分析,DEX自解析重构技术;三代梆梆加固原理分析;爱加密加固原理分析;360加固与脱壳机,360加固VM与置换表;辅助脱壳机,IDA动态调式脱爱加密壳;IDA动态调式脱360壳,IDA动态调式脱SO壳;脱360壳-dex2oat,脱360壳-drizzleDumper;百度加固DD大法,百度加固VM与置换表;阿里加固与脱壳机,腾讯乐固;ARSC资源保护与注解;脱壳神器ZjDroID:捕鱼达3加固技术总结;

AndroID 脱壳与反脱壳分析:

AndroID脱壳中的思路,技巧elf结构详解:动态运行库so文件的文件组成结构elf结构详解:加载so文件的流程elf文件变形与保护,elf文件修复分析,so加壳文件修复常用调试检测方法与过检测方法AndroID源码定制添加反反调试机制AndroID dvm 脱壳,Dalvik dex处理分析IDA脱壳脚本编写,Odex修复方法,IDAOdex修复脚本编写

进阶知识总结和企业级实战(逆向进阶):

病毒分析与脱壳学习,用Ransomware类和木马类进行学习;手动脱壳《王者X耀》练习;从0开始打造自己的破解代码库;

第三阶段:AndroID 漏洞分析和挖掘:

学习常见的漏洞类型和原理。例如堆溢出,栈溢出,UAF等,可以参考漏洞分析相关书籍;关注AndroID Security Bulletin,根据提供的diff分析漏洞成因;学习并调试以前的经典漏洞;学习漏洞挖掘fuzzing思路,参考书籍推荐《AndroID安全XXXX》;病毒分析与病毒脱壳实战;

AndroID 虚拟机技术、系统源码分析、刷机机制介绍、制作ROM刷机包:

ASP代码注入式写法;AndroID 免root进行hook;AndroID虚拟机原理,AndroID多开原理讲解;在apk内部写一个虚拟机,在apk内安装apk;虚拟机适配AndroID 10和64位系统;从0开始开发自己的虚拟机库;最完善的刷机工具 :魔趣 ROM;最完善的刷机工具 :Devices - TWRP;最后

赠送大家一套完整的AndroID学习资料吧。

以前一直是自己在网上东平西凑的找,找到的东西也是零零散散,很多时候都是看着看着就没了,时间浪费了,问题却还没得到解决,很让人抓狂。

后面我就自己整理了一套资料,还别说,真香!

资料有条理,有系统,还很全面,我不方便直接放出来,大家可以先看看有没有用得到的地方吧。

附上白嫖地址:《Android架构视频+BATJ面试专题PDF+学习笔记》

图片转存中…(img-84X6G5rk-1609923117899)]

[外链图片转存中…(img-7GYIQkZD-1609923117901)]

[外链图片转存中…(img-K7o9NVJ3-1609923117905)]

[外链图片转存中…(img-WgTzdQJs-1609923117907)]

总结

以上是内存溢出为你收集整理的还在等机会?写给安卓软件工程师的3条建议,大厂面试题汇总全部内容,希望文章能够帮你解决还在等机会?写给安卓软件工程师的3条建议,大厂面试题汇总所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1054755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存