Android篇:2019初中级Android开发社招面试解答(下)

金三银四,冲击大厂,你值得拥有的一份2019初中级移动端社招面试总结+解答

你当前所处: Android篇:2019初中级Android开发社招面试解答(下)

Android篇:2019初中级Android开发社招面试解答(上)

Android篇:2019初中级Android开发社招面试解答(中)

注:因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解。

Android进阶延伸点

1、如何进行单元测试,如何保证App稳定 ?
  • 参考回答:
    • 要测试Android应用程序,通常会创建以下类型自动单元测试
      • 本地测试:只在本地机器JVM上运行,以最小化执行时间,这种单元测试不依赖于Android框架,或者即使有依赖,也很方便使用模拟框架来模拟依赖,以达到隔离Android依赖的目的,模拟框架如Google推荐的Mockito;
      • Android官网-建立本地单元测试
      • 检测测试:真机或模拟器上运行的单元测试,由于需要跑到设备上,比较慢,这些测试可以访问仪器(Android系统)信息,比如被测应用程序的上下文,一般地,依赖不太方便通过模拟框架模拟时采用这种方式;
      • Android官网-建立仪表单元测试
    • 注意:单元测试不适合测试复杂的UI交互事件
    • 推荐文章:Android 单元测试只看这一篇就够了
    • App的稳定主要决定于整体的系统架构设计,同时也不可忽略代码编程的细节规范,正所谓“千里之堤,溃于蚁穴”,一旦考虑不周,看似无关紧要的代码片段可能会带来整体软件系统的崩溃,所以上线之前除了自己本地化测试之外还需要进行Monkey压力测试
    • 少部分面试官可能会延伸,如Gradle自动化测试、机型适配测试等
2、Android中如何查看一个对象的回收情况 ?
  • 参考回答:
    • 首先要了解Java四种引用类型的场景和使用(强引用、软引用、弱引用、虛引用)
    • 举个场景例子:SoftReference对象是用来保存软引用的,但它同时也是一个Java对象,所以当软引用对象被回收之后,虽然这个SoftReference对象的get方法返回null,但SoftReference对象本身并不是null,而此时这个SoftReference对象已经不再具有存在的价值,需要一个适当的清除机制,避免大量SoftReference对象带来的内存泄露
    • 因此,Java提供ReferenceQueue来处理引用对象的回收情况。当SoftReference所引用的对象被GC后,JVM会先将softReference对象添加到ReferenceQueue这个队列中。当我们调用ReferenceQueue的poll()方法,如果这个队列中不是空队列,那么将返回并移除前面添加的那个Reference对象。
    • 推荐文章:Java中的四种引用类型:强引用、软引用、弱引用和虚引用
3、Apk的大小如何压缩 ?
  • 参考回答:
    • 一个完整APK包含以下目录(将APK文件拖到Android Studio):
      • META-INF/:包含CERT.SFCERT.RSA签名文件以及MANIFEST.MF 清单文件。
      • assets/:包含应用可以使用AssetManager对象检索的应用资源。
      • res/:包含未编译到的资源 resources.arsc。
      • lib/:包含特定于处理器软件层的编译代码。该目录包含了每种平台的子目录,像armeabi,armeabi-v7a, arm64-v8a,x86,x86_64,和mips
      • resources.arsc:包含已编译的资源。该文件包含res/values/ 文件夹所有配置中的XML内容。打包工具提取此XML内容,将其编译为二进制格式,并将内容归档。此内容包括语言字符串和样式,以及直接包含在**resources.arsc*8文件中的内容路径 ,例如布局文件和图像。
      • classes.dex:包含以Dalvik / ART虚拟机可理解的DEX文件格式编译的类。
      • AndroidManifest.xml:包含核心Android清单文件。该文件列出应用程序的名称,版本,访问权限和引用的库文件。该文件使用Android的二进制XML格式。
      • lib、class.dex和res占用了超过90%的空间,所以这三块是优化Apk大小的重点(实际情况不唯一)
    • 减少res,压缩图文文件
      • 图片文件压缩是针对jpg和png格式的图片。我们通常会放置多套不同分辨率的图片以适配不同的屏幕,这里可以进行适当的删减。在实际使用中,只保留一到两套就足够了(保留一套的话建议保留xxhdpi,两套的话就加上hdpi),然后再对剩余的图片进行压缩(jpg采用优图压缩,png尝试采用pngquant压缩)
    • 减少dex文件大小
      • 添加资源混淆
      • shrinkResources为true表示移除未引用资源,和代码压缩协同工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值