面试记录
2018-03-06 12:01
295 查看
面试记录
记录下这几天面试的经验。目录
面试记录目录
0305
0311
0312
0319
0321
0305
1、能否在子线程中创建子线程,有没有什么影响?2、Loop 一直在循环从MessageQueue中遍历Message,为什么不会造成线程阻塞?
3、用户触摸界面,焦点传递分发机制
4、View 绘制流程,onMeasure,onDraw,onLayout。onMeasure 总共会执行了多少次?
5、Eventbus 实现,源码分析
6、强引用,弱应用,内存泄露
7、安卓逆向,hook,ele加壳脱壳,xposed框架,gdb/IDA等调试工具的使用
8、设计模式的使用,单例模式,装饰者模式,工厂模式,观察者模式等
0311
面试大佬话语记录:1、程序猿要想在市场上生存得久点,就要有自己的技术壁垒。这个壁垒,也许是比较冷门的,或者是门槛比较高的,或者是你拥有别人所没有的天赋(比如美感,数学)
2、就我目前工作经验,界面这块是没有啥问题的,但是这些东西,可替代性太高,壁垒不够强。可以往技术深度发展,或者是别人不会的。比如安卓的兼容性,稳定性(安卓各版本,多机型),逆向安全
3、技术壁垒:深度,友盟/TalkingData,兼容性,安全性
4、App的稳定性,测试,黑白灰测试
5、安卓逆向,灰度安全,源码hack
0312
1、线程安全,单例是线程安全的吗2、Java 4种对象引用
逆向学习——
1、smali语法,静态分析,动态调试APK
2. hook技术,AOP开发,Xposed框架
3. IDA、OD、GDB、OllyDbg、WINDBG等逆向分析工具
4. Smali、ARM指令集、熟悉DEX、ELF加壳脱壳、常见公开加密算法
5. NDK、JNI编程
6. 各版本API技术差异
7. python/perl/ruby/php等任意一类脚本语言,熟悉移动平台开源安全框架
职业发展目标——
0319
1、加密(MD5、AES)2、MVVM 单元测试
3、图片矩阵处理
4、反射方法
0321
项目要点总结——1、身份证拍摄——
⑴、Camera+SurfaceView(SurfaceHolder、SurfaceHolder.Callback)实现相机预览与拍摄界面
⑵、Paint+Canvas计算身份证长宽比并绘制遮罩层,Paint.setXfermode(DST_OUT) 图像混合模式,中间绘制阴影,与整个绘制区域不相交位置取反变成遮罩层。
⑶、Camera.PictureCallback 获取相机拍摄照片回调,Matrix 将照片旋转到正常方向,身份证长宽比计算结合Rect裁剪位置, createBitmap 重新生成出身份证并存储到本地。
2、Mvp架构——
⑴、view层抽象,抽象V和P,用泛型传入并相互依赖
public abstract class BaseActivity<V extends IBaseView, T extends BasePresenter<V>> extends AppCompatActivity implements IBaseView { protected abstract T CreatePresenter(); protected T mPresenter; mPresenter.attachView((V) this); } public abstract class BasePresenter<V extends IBaseView> { private Reference<V> mView; public V getView() { if (mView != null) { return this.mView.get(); } return null; } }
⑵、Model 层模型行为,可定义多个行为模型,循环利用
public interface IBaseModel {} public interface IBankCardModel extends IBaseModel { /** * Created by Aloha <br> * -explain 获取用户银行卡列表 * @Date 2017/2/24 9:50 */ OkHttpRequest fetchUserBankCard(); }
⑶、抽象View 层行为成接口,P层回调数据操作
public interface IBankCardAddView extends IBaseView { /** * Created by Aloha <br> * -explain 添加银行卡 * @Date 2017/1/19 11:48 */ void receiveAddUserBankCard(int status,String message); }
3、AES加密——
⑴、服务端获取加密密钥,本地用特定约束规则加上密钥得到真正密钥,再使用该密钥加密密码、验证码等,传输给服务端
⑵、Paint+Canvas计算身份证长宽比并绘制遮罩层,Paint.setXfermode(DST_OUT) 图像混合模式,中间绘制阴影,与整个绘制区域不相交位置取反变成遮罩层。
⑶、Camera.PictureCallback 获取相机拍摄照片回调,Matrix 将照片旋转到正常方向,身份证长宽比计算结合Rect裁剪位置, createBitmap 重新生成出身份证并存储到本地。
相关文章推荐
- 2015实习生面试记录
- 三星研究院实习面试记录&&搜狗面试记录
- 学习下,牛人的面试记录
- 面试经常问到的问题(自己记录)
- 解 “一家外包公司面试记录”之“字符串中相邻的字符个数大于等于2的记录数”
- 面试记录第十一节——(volley框架)
- 百度外卖面试记录
- 2018阿里巴巴客户端研发工程师面试记录
- 前端面试 - Http Session问题,记录我愚蠢的回答=。=
- 记录一些面试问题吧。
- 记录一次很遗憾的面试经历
- 2011年一次面试的实际记录
- 记录人生第一次面试之笔试
- 代码面试指南学习记录-第一章01
- 2018网易内推测试工程师面试记录
- 面试记录1---前端开发
- 面试,不挑贵的只选对的「小废物招聘全记录②」
- 关于堆栈的些许面试题型的分析与实现 之 暑假学习记录
- 2015链家网面试记录
- 面试记录