Android在开发初期之后应该何如学习?怎样才算精通?方向在哪儿?

如何判断你已经度过初期

这仅仅是我个人的观点,希望各位斟酌损益,鉴明自身。

什么是小白,什么又是完成初期的磨练到了进阶的阶段了呢?
我猜你这个阶段是把大部分demo都能跑通了吧,常见的控件也会了吧。

但是,你现在还是会的太少了。

就是会用Linearlayout/relativelayout/button/textview/edittext/imageview(的很少一部分属性)来画一些简单的界面了吧。

就是会用activity/fragment (的生命周期这么少的知识)来让ui在手机里面显示出来了吧。就是会用asynctask(这么简单的一个过时的类)来网络请求了吧。

就是会继承了个Application类来接几个第三方服务(几行代码就接入)了吧。就是会用个broadcast(估计只会最基本的显式广播,排队广播,粘性广播啥的都不会用)了吧。

就是会ListView+BaseAdapter+ViewHolder(总共不到10个重载的方法)或者recycleview+adapter(估计不会自定义layoutmanager,估计没才过itemanim的坑)来展示数据了吧。

这总共就多大一点知识啊,

学的这些东西内容这么少,不迷茫才怪。如果我说屈你了。

好。你说你比这强。

都会自定义控件(总共就measure draw layout这三个方法)
还会volley(代码写的一堆callback hell),还会sqllite(这玩意没多大用,也是死东西)
还会xml里面定义动画(就平移 反转 透明 旋转 属性这几种)
甚至你还会eventbus(别说只会onEventMainThread哦)
你还会rxjava(学过函数式语言的都感觉这没啥)

你说你还追新,md控件玩的溜的很,toolbar(兼容到4.4的沉浸式状态栏会用不?)会用,drawerlayout会用(碰到过与surfaceview冲突的情况不?),还会用coordlayout+collapsinglayout+recycleview来做隐藏额头(知道那个collapsinglayout中的mode是干啥的不,自定义behavor会不?:)

这些都会了不?啥,你都会了?再留个作业。

APP里面的main在哪?别的桌面应用框架像Qt,人家显示控件都要new一个window,那咱app的这个渲染控件的window在哪new的,咋让咱屏幕听话跟着画的?咱手机这么多传感器,那传感器数据咋来到咱app的?

那manifest在咱手机里面咋滚轮的,发生了啥,系统咋处理的?

我在美团里面能打开支付婊的支付界面,这在咱手机里面发生了啥?

我提出来的这些都感觉虚?回去大量学习然后写代码吧。我的这些也不是专门找书看的,而是长期开发来排除各种bug,期间读各种大牛文章,甚至翻了dev/framework层源码理解来的。

多花时间吧,花大把大把的。

关于如何学习以及学习路线的铺垫

Android学习路线图

 

这份学习路线图是参考腾讯年薪70W的Android程序员来撰写的,虽然不能契合每个人,但希望也能给到各位一点启发和参考。

Android基础和进阶资料*

需要基础以及进阶资料和学习路线图的同学可点击 GitHub自行领取。
同时我也推荐一下我的Android交流裙Android技术交流不仅可以免费获取资料,而且还能有一帮大佬为你摆平关于Android的技术问题~

一、Java 基础+进阶

  • JVM
  • Object
  • static
  • final
  • String、StringBuffer. StringBuilder
  • 异常处理
  • 内部类
  • 多态
  • 抽象和接口
  • 集合框架
  • 反射
  • 单例线程
  • volatile
  • synchronized
  • Lock
  • 引用类型
  • 动态代理
  • 元注解

Android 知识点汇总

  • Activity
  • Fragment
  • Service
  • BroadcastReceiver
  • ContentProvider
  • 数据存储
  • View
  • 进程
  • Parcelable接口
  • IPC
  • Window / WindowManager
  • Bitmap
  • 屏幕适配
  • Context
  • SharedPreferences
  • 消息机制
  • 线程异步
  • RecyclerView 优化
  • Webview

Android 扩展知识点汇总

  • ART
  • Hook
  • Proguard
  • 架构
  • Jetpack
  • NDK开发
  • 类加载器

常见面试算法题汇总

  • 排序
  • 二叉树
  • 链表
  • 栈/队列
  • 二分
  • 哈希表
  • 堆/优先队列.
  • 二叉搜索树
  • 数组/双指针
  • 贪心
  • 字符串处理
  • 动态规划
  • 矩阵
  • 二进制/位运算
  • 其他

Android基础问题相关(面试题与答案已整理成了PDF文档):

1、接口的意义-百度
2、抽象类的意义-百度
3、内部类的作用-乐视
4、Java 虚拟机的特性-百度-乐视
5、哪些情况下的对象会被垃圾回收机制处理掉-美团-小米
6、进程和线程的区别-猎豹-美团
7、java中==和equals和hashCode的区别-乐视
8、HashMap的实现原理-美团
9、string-stringbuffer-stringbuilder区别-小米-乐视-百度
10、什么导致线程阻塞-58-美团
11、多线程同步机制-猎豹
12、ArrayMap对比HashMap
13、hashmap和hashtable的区别-乐视-小米-360
14、容器类之间的区别-乐视-美团
15、抽象类接口区别-360

Android 方面(面试题与答案已整理成了PDF文档)

16、如何导入外部数据库?
17、本地广播和全局广播有什么差别?
18、intentService作用是什么,AIDL解决了什么问题-小米
19、Ubuntu编译安卓系统-百度
20、LaunchMode应用场景-百度-小米-乐视
21、Touch事件传递流程-小米
22、View绘制流程-百度
23、多线程-360
24、Handler,Thread和HandlerThread的差别-小米
25、线程同步-百度
26、什么情况导致内存泄漏-美团
27、ANR定位和修正
28、什么情况导致oom-乐视-美团
29、Service与Activity之间通信的几种方式
30、如何保证service在后台不被Kill
31、Requestlayout,onlayout,onDraw,DrawChild区别与联系-猎豹
32、Android动画框架实现原理
33、Android为每个应用程序分配的内存大小是多少-美团
34、优化自定义view百度-乐视-小米
36、volley-美团-乐视
37、Glide源码解析
38、Android设计模式
39、Android属性动画特性-乐视-小米
40、Activity Window View三者的差别,fragment的特点-360
41、invalidate和postInvalidate的区别及使用-百度
42、LinearLayout和RelativeLayout性能对比-百度
43、View刷新机制-百度-美团
44、架构设计-搜狐

腾讯公司Android面试题精选

45、2000万个整数,找出第五十大的数字?
46、从网络加载一个10M的图片,说下注意事项
47、自定义View注意事项
48、项目中常用的设计模式
49、JVM的理解

阿里Android面试题精选
50、进程间通信方式
51、什么是协程
52、内存泄露是怎么回事
53、程序计数器,引到了逻辑地址(虚地址)和物理地址及其映射关系
54、数组和链表的区别
55、二叉树的深度优先遍历和广度优先遍历的具体实现
56、堆的结构
57、bitmap对象的理解
58、什么是深拷贝和浅拷
59、对象锁和类锁是否会互相影响
60、looper架构
61、自定义控件原理
62、自定义控件原理
63、ActivityThread,Ams,Wms的工作原理
64、Java中final,finally,finalize的区别
65、一个文件中有100万个整数,由空格分开,在程序中判断用户输入的整数是否在此文件中。说出最优的方法
66、两个进程同时要求写或者读,能不能实现?如何防止进程的同步?
67、volatile 的意义?
68、烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?

面试题及答案整理部分截图

需要相关面试题以及Android进阶资料的朋友可以前往 GitHub 自行查阅哦。

希望能帮助到各位。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值