Android 基础与底层机制面试题

本文总结了Android面试中常见的底层机制问题,包括Activity、Window、View的区别,Fragment的特点,低版本SDK实现高版本API的方法,launch mode的应用场景,以及内存泄漏和ANR的定位与修正等。此外,还探讨了AIDL的作用,Service与Activity的通信方式,以及View的绘制流程和内存优化策略。
摘要由CSDN通过智能技术生成

总结:使用 IntentService 的好处有哪些。首先,省去了手动开线程的麻烦;第二,不 用手动停止 service;第三,由于设计了工作队列,可以启动多次—startService(), 但是只有一个 service 实例和一个工作线程。一个一个熟悉怒执行。

AIDL 解决了什么问题?

AIDL 的全称:Android Interface Definition Language,安卓接口定义语言。 由于 Android 系统中的进程之间不能共享内存,所以需要提供一些机制在不同的进程之 间进行数据通信。

远程过程调用:RPC—Remote Procedure Call。 安卓就是提供了一种 IDL 的解决方案 来公开自己的服务接口。AIDL:可以理解为双方的一个协议合同。双方都要持有这份协 议—文本协议 xxx.aidl 文件(安卓内部编译的时候会将 aidl 协议翻译生成一个 xxx.java 文件—代理模式:Binder 驱动有关的,Linux 底层通讯有关的。)

在系统源码里面有大量用到 aidl,比如系统服务。

电视机顶盒系统开发。你的服务要暴露给别的开发者来使用。 讲解 Binder 机制

[](()4. Activity、 Window、 View 三者的差别, fragment 的特点? (360)

Activity、 Window、 View 三者如何协同显示界面的。—考点:显示的过程(view 绘 制流程)源码的熟悉度。

Activity 剪窗花的人(控制的);Window 窗户(承载的一个模型);View 窗花(要显示 的视图 View);LayoutInflater 剪刀—将布局(图纸)剪成窗花。 (Alt+方向箭头)

fragment 的特点?(你用 fragment 有没有领略到一些乐趣,或者有没有踩过什么坑?)

fragment 的设计主要是把 Activity 界面包括其逻辑打碎成很多个独立的模块,这样便 于模块的重用和更灵活地组装呈现多样的界面。

1) Fragment 可以作为 Activity 界面的一个部分组成;

2) 可以在一个 Activity 里面出现多个 Fragment,并且一个 fragment 可以在多个 Activity 中使用;

3) 在 Activity 运行中,可以动态地添加、删除、替换 Fragment。

4) Fragment 有自己的生命周期的,可以响应输入事件。

踩过的坑:

  1. 重叠;

  2. 注解 newAPI(兼容包解决&#x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值