原文;https://www.jianshu.com/p/cfa824ecaa52
面试
每一个人知识面不同,可能对于我来讲算有难度的大家以为so easy哈哈。这里举几个记得比较清楚的面试题,答案不保证必定标准,大家权当参考,有更好的也欢迎在评论区留言感谢!编程
要测试 Android 应用程序,一般会建立如下类型自动单元测试架构
本地测试:只在本地机器 JVM 上运行,以最小化执行时间,这种单元测试不依赖于 Android 框架,或者即便有依赖,也很方便使用模拟框架来模拟依赖,以达到隔离 Android 依赖的目的,模拟框架如 Google 推荐的 Mockito;框架
检测测试:真机或模拟器上运行的单元测试,由须要跑到设备上,比较慢,这些测试能够访问仪器(Android 系统)信息,好比被测应用程序的上下文,通常地,依赖不太方便经过模拟框架模拟时采用这种方式;
注意:单元测试不适合测试复杂的 UI 交互事件
App 的稳定主要决定于总体的系统架构设计,同时也不可忽略代码编程的细节规范,正所谓“千里之堤,溃于蚁穴”,一旦考虑不周,看似可有可无的代码片断可能会带来总体软件系统的崩溃,因此上线以前除了本身本地化测试以外还须要进行 Monkey 压力测试 组件化
少部分面试官可能会延伸,如 Gradle 自动化测试、机型适配测试等单元测试
插件化是指将 APK 分为宿主和插件的部分。把须要实现的模块或功能当作一个独立的提取出来,在 APP 运行时,咱们能够动态的载入或者替换插件部分,减小宿主的规模学习
宿主: 就是当前运行的 APP。
插件: 相对于插件化技术来讲,就是要加载运行的apk 类文件。测试
这是我整理的插件化技术思惟图;插件
引入组件化的缘由:项目随着需求的增长规模变得愈来愈大,规模的增大致使了各类业务错中复杂的交织在一块儿,每一个业务模块之间,代码没有约束,带来了代码边界的模糊,代码冲突时有发生, 更改一个小问题可能引发一些新的问题, 牵一发而动全身,增长一个新需求,须要熟悉相关的代码逻辑,增长开发时间
1.避免重复造轮子,能够节省开发和维护的成本。
2.能够经过组件和模块为业务基准合理地安排人力,提升开发效率。
3.不一样的项目能够共用一个组件或模块,确保总体技术方案的统一性。
4.为将来插件化共用同一套底层模型作准备。架构设计
组件化开发流程;是把一个功能完整的 App 或模块拆分红多个子模块(Module),每一个子模块能够独立编译运行,也能够任意组合成另外一个新的 App 或模块,每一个模块即不 相互依赖但又能够相互交互,可是最终发布的时候是将这些组件合并统一成一个 apk,遇到某些特殊状况甚至能够升级或者降级
固然问的不仅是这么几个问题。当时回答的时候可能会稍微啰嗦一些,这些是根据我回头从新整理了一下的。更多的面试题就不一一再例出来了
我平时遇到有用的学习视频,资料都喜欢收集整理起来。包括此次去腾讯面试遇到的问题都有整理在这篇社招文档里面了。若是有须要的朋友也能够在评论区留言,我看到后会回复发你的
急需进阶学习视频的朋友能够留言视频教程,请说明须要初中级的,仍是高级的教程。
身边不少人会不停告诉你,要不断的学习,否则说不定哪天就被淘汰了
可是他们不告诉你,应该学什么?怎么学?不说总结的重要性?
学而不思则罔。望共勉!