App求职

2018/04/27

1、StringBuffer/StringBuilder

    String是不可变对象,每次都会新增。

    StringBuffer/StringBuilder则不然,每次只对其本身进行操作,所以拼接等操作性能优于String

    StringBuffer是线程安全的,其方法为synchronized,多线程情况下使用。StringBuilder不具备线程安全特征。

2、Binder

3、同步、对象锁与方法锁区别、互斥锁与同步锁原理

4、回调与观察者模式区别

5、Handler LocalThread.标识

6、onMeasure/onLayout/onDraw调用,为了性能,什么时候控制只局面刷新。invalidate调用流程

 

深入

 

 

 

 


Need复习点:
1、Java基础;
2、安卓平台常用布局;
3、理解面向对象设计的基本原则;
4、精通常用的设计模式;
5、熟悉框架及各种特性;
6、熟悉Android下电话、信息、地理定位、数据库、动画等运行原理;
7、熟悉Android app 开发流程;
8、熟悉网络编程,熟悉Linux、XML、TCP/IP和HTTP协议;

 

9、深入了解android架构,对项目有构建系统框架能力;

 

 

 

 

re:

2、安桌平台常用布局;

LinearLayout:横、竖

RelativeLayout:以一个为基准

FrameLayout:默认左上角,一般结合Fragement使用

TableLayout:表格布局,TableRow,单员格里可以设置属性

AbsoluteLayout:使用具体坐标

 

3、理解面向对象设计的基本原则;

SOLID+迪米特原则

例子:ImageLoader

 

SOLID:

单一职责原则(SRP):显示、下载、初始化缓存都放在ImageLoader类中,未遵循该原则。
开放封闭原则(OCP):修改后,ImageLoader负责图片加载。ImageCache负责处理图片缓存。但只能通过内存缓存,程序退出后又得耗流量去下载,所以添加SDCard缓存、以及Double缓存(if else判断使用哪种),此时时if else逻辑就很臃肿,所以抽象出接口,通过注入接口的方式使用哪种缓存,这就是开闭原则。
里氏替换原则(LSP) :上面各种实际缓存的注入,其实就是里氏替换原则。

依赖倒置原则(DIP) :抽象依赖抽象,细节依赖抽象
接口隔离原则(ISP):try catch finally 里,finally里关闭对象,其实就可以整个关闭对象,让其只依赖其Closable接口,而不暴露具体对象的方法。

 

迪米特原则:

例子:租房中介,上面例子中SDCard缓存用到了jake wharton的DiskLruCache,但对用户是透明的,用户完全不知道其存在,这样就使得系统具有更好的扩展性与更低的耦合性。

 

 

 

6、熟悉Android下电话、信息、地理定位、数据库、动画等运行原理;

数据库运行原理:

 

query :使用匿名共享内存机制:适合数据量多的情况。内存映射

call:使用binder通信机制:适合数据量少的情况。

 

Provider :

android:bultiprocess=false:会在一个独立的应用程序中启动。

ContentProvider

ContentResolve

ContentService

ContentObserver

 

动画:

Animation   动画的一些属性,有两个成员,AnimationListener和Transformation

Transformation 有两个重要属性 alpha(透明度)  matrix(各种平移、缩放、旋转等)

 

地理定位运行原理:

GPS定位,WIFI定准,基站定位,AGPS定位

 

 

 

 

1.有扎实的编程基础,熟练掌握java开发语言和android sdk,熟悉Android消息机制、事件分发机制、以及对overdraw的优化,对Android系统架构有一定了解。

2.熟悉Android中socket与http网络通信方式以及xml与json解析。

3.了解Glide的用法,会使用OkHttp等第三方框架。

4.会使用Systrace、TraceViewer分析以及优化卡顿性能问题,有分析与解决anr以及oom的能力。

5.熟悉常见的设计模式,理解Android中一些使用到设计模式的技术点,有良好的编码习惯与面向对象设计经验。

6.乐于分享,有良好的沟通能力和团队协作能力。

 

Handler消息机制:

 

MessageQueue,消息队列

Looper不断循环消息队列

Handler处理消息

 

 

 

事件分发机制:

 

overdraw优化:

 

socked

http区别:

 

Glide用法及原理:

 

OkHttp用法及原理:

 

anr:

 

oom:

 

设计模式,举例Android中用到的:

 

MVP模式:

 

 

20190419

 

leakcanary 实现原理,如何部署到线上分析

sparseArray put get 流程

 

RootView 和 view 的invalidate什么区别

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值