android从业者的自我修养 

 android从业者的自我修养       

      从业两年半。细碎知识点很多,本次做一个全局的梳理。

android 知识点梳理:

  • 一.android 四大组件

           四大组件:activity 、service、broadcastReceiver、contentProvider

activity启动方式:

          1.singleTask   

                  调用activity A时,检测栈中有没有A,有的话调用,非栈顶ko之前的

          2.singleInstance   

                 调用activity A时,单独给开一个栈,一直用到GG

          3.singleTop 

                 调用activity A时,在栈顶就复用,不在就开个新的

          4.standard

                 调用activity A时,创建一个新的填到栈顶

service:

          启动: 1.startService。2.bindService

broadcastReceiver

           类型: 1.本地广播 2.普通广播 3.系统广播

           注册:静态注册 、动态注册

contentProvider

           是应用程序之间共享数据的接口。使用的时候首先自定义一个类继承ContentProvider,然后覆写query、insert、update、delete 等方法。

    

  • 二.android 源码

 

          1⃣️ view绘制流程、事件分发机制

 

          2⃣️ recycleView的源码

 

          3⃣️ okhttp源码(网络)

 

          4⃣️ Glide源码(图片加载)

 

         5⃣️ ActivityManagerService 源码

 

         6⃣️ WindowManagerService 源码

 

  • 三.android UI (布局,自定义view 各种酷炫视觉特效waiting)
  • 四.android 线程、多线程、协同
  • 五.android 性能优化 (UI、内存、卡顿、启动、I/O、存储、网络、包体积)
  • 六.android 热修复 
  • 七.android 项目架构  MVVM(lifeCycle、DataBinding、ViewModel)\ MVP \ MVC
  • 八.Gradle 打包流程 (xml.dex.class.等转化,使用groovy)
  • 九.android 网络(应用层:HTTP  传输层:长连接socket)
  • 十.android 知名三方框架
  •     (网络:android-async-http 、volley、okhttp、retrofit)
  •     (图片加载:UIL、Picasso、Fresco、Glide)
  • 十一.android  辅助工具(androidKiller 反编译、postMan 查接口 、charles 抓包、Monkey 测试)
  • 十二.android 安全(目前:MD5  代码混淆proguard)
  • 十三.android 扩展( kotlin flutter。。。)
  • 十四.android 插件化

 

java知识点梳理

       【工欲善其事,必先利其器】java是android的基础,java语法必须要非常熟练。同时需要清楚的了解应用运营的操作系统和环境。经验证明,在解bug的时候有莫大的帮助。

         ps:没想到尝试的第一次面试,碰到的就不是资深安卓工程师来面,而是主攻服务端的java程序员(CTO)。

         因同是java语言,面试题里,两道java基础题,一道安卓题,一道算法题。有一道java题不会做,是关于多线程的,给问懵了。觉得丢脸哦,得把这块知识点好好梳理复习一下。

        public synchronized void recordData(String data){

                       dataList.add(data);

        }

        public  void printData() {

                       synchronized(dataList) {

                               for (int i = 0; i < dataList.size() ; i ++) {

                                     printOut("i :" + dataList.get(i));

                               }

                       }

         }

         

        

 

数据结构与算法梳理

基本数据结构:

    字符串(KMP算法)

    数组 (排序算法)

    队列和栈

   链表(单向链表、双向链表、循环链表)

   树\堆

   二叉树(平衡二叉树、二叉查找树 【先序、中序、后序遍历】)

   图(求最短路径 :弗洛伊德算法、迪杰特斯拉算法)

  散列表 【哈希】

 

常用设计模式梳理

    建造者模式(Builder):

          Request request = new Request.Builder().url(url).post(body).build();

  单例模式(singleInstance):

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值