最近在知乎上,有许多人在邀请我去回答“Android前景怎么样、是不是要凉了、是不是应该考虑要转行?”等一系列的问题。
想着可能有很多人都有这样的担心,于是就赶紧写篇文章,来跟你们谈下Android开发的前景到底怎么样?
一、java相关
java基础
1、java 中==和 equals 和 hashCode 的区别
2、int、char、long 各占多少字节数
3、int 与 integer 的区别
4、谈谈对 java 多态的理解
5、String、StringBuffer、StringBuilder 区别
6、什么是内部类?内部类的作用
7、抽象类和接口区别java高级
1、哪些情况下的对象会被垃圾回收机制处理掉?
2、讲一下常见编码方式?
3、utf-8 编码中的中文占几个字节;int 型几个字节?
4、静态代理和动态代理的区别,什么场景使用?
5、Java 的异常体系
6、谈谈你对解析与分派的认识。
7、修改对象 A 的 equals 方法的签名,那么使用 HashMap 存放这个对象 实例的时候,会调用哪个 equals 方法?
##二、图片相关
1、图片库对比
2、LRUCache 原理
3、图片加载原理
4、自己去实现图片库,怎么做?
5、Glide 源码解析
6、Glide 使用什么缓存?
7、Glide 内存缓存如何控制大小?
8.Fresco 源码分析
三、网络和安全机制
1.网络框架对比和源码分析
2.自己去设计网络请求框架,怎么做?
3.网络请求缓存处理,okhttp 如何处理网络缓存的
4.从网络加载一个 10M 的图片,说下注意事项
5.TCP 的 3 次握手和四次挥手
6.TCP 与 UDP 的区别
7.TCP 与 UDP 的应用
8.HTTP 协议
四、数据库相关
1.sqlite 升级,增加字段的语句
2.数据库框架对比和源码分析
3.数据库优化
4.数据库数据迁移问题
5.sqlite 常见异常
五、插件化、模块化、组 件化、热修复、增量更新、Gradle
1.对热修复和插件化的理解
2.插件化原理分析
3.模块化实现(好处,原因)
4.热修复、插件化
5.项目组件化的理解
6.描述清楚点击 Android Studio 的 build 按钮后发 生了什么
六、架构设计与设计模式
1.谈谈你对 Android 设计模式的理解
2.MVC MVP MVVM 原理和区别
3.你所知道的设计模式有哪些?
4.项目中常用的设计模式
5.手写生产者/消费者模式
6.写出观察者模式的代码
7.适配器模式,装饰者模式,外观模式的异同?
8.谈谈对 RxJava 的理解
七、性能优化专题
1.启动 app 黑白屏优化
2.稳定——内存优化
3.流畅——卡顿优化
4.节省——耗电优化
5.安装包——APK 瘦身
6.冷启动与热启动
7.内存泄漏的场景和解决办法
- Bitmap 优化
9.webview 优化
八、Android Framework 相关
1、Android 系统架构
2、View 的事件分发机制?滑动冲突怎么解决?
3、View 的绘制流程?
4、跨进程通信。
5、Android 系统启动流程是什么?
6、说下四大组件的启动过程,四大组件的启动与销 毁的方式。
7、理解 Window 和 WindowManager。
8、大体说清一个应用程序安装到手机上时发生了什 么?
九、Android 优秀三方库源码
1.网络底层框架:OkHttp 实现原理
2.网络封装框架:Retrofifit 实现原理
3.响应式编程框架:RxJava 实现原理
4.图片加载框架:Glide 实现原理
5.事件总线框架:EventBus 实现原理
6.内存泄漏检测框架:LeakCanary 实现原理
7.依赖注入框架:ButterKnife 实现原理
8.依赖全局管理框架:Dagger2 实现原理
9.数据库框架:GreenDao 实现原理
最后
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
最后针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!
需要资料的朋友可以点击我的腾讯文档免费领取
希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!