BAT同系列公司面试总结,哪些你所不知道的,秀出天际

  • JavaSisst:字节码修改类库,依赖字节码修改和DX类库,可以完成动态替换和切面编程。
  • AspectJ:依赖字节码编织器,需要按照其语法来编写,需要一点“编织”时间。
  • Xposed方案,简直是一个Bug,神器,没准以后会被Android修复呢,不仅可以改变自己的类行为还可以hook系统的方法,root过的机器还可以hook其他App和系统进程。

###4.整体性能上如何保证探测以及流畅
性能可以根据帧率、内存、CPU、GPU等指标的数据和表现辅助判断,可以从/proc文件夹下读取文件获取cpu、内存等信息,也可以用dumpsys命令获取帧率等信息,也可以通过android API获取相关信息。

还有很多性能相关的分析工具,Heap Tool、Memory Monitor、Lint、HierarchyView、WireShark、TraceView等。

保证流畅有很多点可以去研究,比如布局、代码、缓存、网络、数据库、异步并发等方面的优化,涉及很多的知识点,可以google下,先简单说下。

  • 布局充分利用include、viewstub、merge等标签,控制层级,避免过度渲染(绘制)。
  • 代码上尽量使用final、局部变量、系统函数如arraycopy等、位移操作是否可以代替乘除、for循环是否可以避免size计算和new对象等等。
  • 缓存方面,线程、位图、视图、网络数据是否可以客户缓存或者IO用缓冲流,充分的重复利用。
  • 网络方面,如尽量避免轮询,控制节奏和频率,IP直连,采用SPDY方案(或HTTP2.0)来实现压缩header、多路复用、双向通信等,API数据压缩,多个请求是否可以合并,数据压缩和尝试protocol buffer相关序列化方案。
  • 数据库方面,尝用SQLiteStatement代替SQLiteDatabase完成操作,索引和事务的充分理解和使用,注意SQL语句语法和拼接,采用部分查询和延迟加载。
  • 异步并发方面,全App只有一个线程池,控制核心并发数量,控制超载时排队数量和策略,合理调度任务,优化业务逻辑。
  • 最后关于帧率,你看到的视觉卡顿,直接原因基本是“掉帧”。关于帧率,尽量保证主线程里做的事情,不会超过16毫秒(其实这挺难的),16毫秒大法好,具体可以去理解下CPU、GPU、屏幕三者如何配合完成渲染的。
    ###5.良好的架构设计
    根据经验,一个良好的架构设计可大致分三层
  • 上层是Activity、Fragment、Views&Widget等视图渲染和业务调用。
  • 中层是针对业务的三方库,以及主要逻辑实现,业务流程在这完成,此层还可以细分,不再多表。
  • 底层是业务无关的框架库,用之四海而皆准,各类库内高内聚,不同库间低耦合。

这样一个结构,使得你的代码快速在phone和pad以及tv之间迁移,便于业务的统一编写与调用,且让各模块更为清晰。

项目结构有区别,但基本要遵循MVC、逻辑视图分离等设计思想。以上为结构级别,再细粒度一些,推荐反复理解实践设计模式的六大原则与23种设计模式,让项目整体更优雅可控。自动化,智能化,约定优于配置等思想,恰当使用合需、轻量、可扩展的框架库可以帮助项目更稳定简单。

借用 Google 大神的总结就是,框架设计需要满足如下几点:
简单易学;
易于使用,即使没有文档;
很难误用;
易于阅读,代码易于维护;
足够强大,可以满足需求;
易于扩展;
适合用户。
O(∩_∩)O哈哈~
###写在最后
很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我整理了一些资料,需要的可以免费分享给大家,后面也会整理比较新比较火的技术分享的

如果喜欢我的文章,想与一群资深开发者一起交流学习的话,欢迎加入我的合作群Android Senior Engineer技术交流群:925019412

领取方式:Android技术交流群925019412

分享读者

作者2013年java转到Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在。

被人面试过,也面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!

我们整理了一份阿里P7级别的Android架构师全套学习资料,特别适合有3-5年以上经验的小伙伴深入学习提升。

主要包括腾讯,以及字节跳动,阿里,华为,小米,等一线互联网公司主流架构技术。如果你有需要,尽管拿走好了。

腾讯T3架构师学习专题资料

如果你觉得自己学习效率低,缺乏正确的指导,可以一起学习交流!

CodeChina开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》

群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。

因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值