美文网首页
Android题目

Android题目

作者: TomyZhang | 来源:发表于2020-02-21 11:24 被阅读0次

    一、Android

    组件、控件

    • Activity生命周期
    • Activity从前台切换到后台,然后再回到前台,生命周期回调方法
    • Activity上方弹出Dialog,生命周期回调方法
    • Activity上方有Dialog,按Home键时生命周期回调方法
    • Activity横竖屏切换时,生命周期回调方法
    • 下拉状态栏是否影响Activity生命周期回调方法
    • Activity的缓存方法onSaveInstanceState
    • Activity启动模式
    • Activity栈
    • Activity启动流程
    • Service生命周期
    • Service启动方式
    • Fragment生命周期
    • Activity之间通信方式
    • Activity与Service通信方式
    • Fragment之间通信方式
    • Context,Application与Activity的Context对象区别
    • AlertDialog、popupWindow和Activity区别
    • 广播的动态注册与静态注册,广播类型,本地广播
    • ContentProvider的作用
    • AndroidManifest的作用
    • Intent可以传递哪些数据
    • Bundle机制
    • View事件分发机制
    • View点击事件被拦截,如何才能传递到子View
    • View渲染机制
    • 自定义View
    • RecycleView使用、原理、优化
    • RecycleView与ListView区别
    • ListView的优化
    • Listview图片加载错乱的原理与解决方案
    • ViewPager使用,如何只初始化当前Fragment,其它不初始化
    • SurfView
    • LinearLayout、RelativeLayout、FrameLayout的特性与使用场景
    • layout_gravity和gravity区别
    • layout_weight

    动画

    • 动画有哪几类
    • 差值器与估值器

    数据存储

    • Android中数据存储方式
    • SharedPreferences是否进程同步,如何做到进程同步
    • SQLite的基础操作
    • SQLite升级,增加字段的语句

    消息机制

    • Handler机制
    • Handler如何绑定线程
    • Looper如何创建与启动

    进程间通信

    • Android中进程间通信方式
    • AIDL机制
    • Binder机制
    • 序列化的作用,Android中两种序列化的区别
    • 为什么引入Parcelable

    进程、线程、线程池

    • Android进程分类
    • Android中进程内存的分配,能否自己分配定额内存
    • 多进程使用场景
    • AsyncTask原理,如何取消AsyncTask
    • IntentService
    • HandlerThread
    • ActicityThread
    • ANR的原因,如何分析
    • App崩溃异常捕捉
    • OOM是否可以try catch
    • 内存泄露如何产生
    • 为什么不能在子线程更新UI
    • 在子线程更新UI的方式
    • 为什么在Service中创建子线程而不是在Activity中

    图片加载

    • LRUCache原理
    • 图片加载原理
    • 加载大图,如何预防OOM
    • Bitmap如何回收

    资源目录

    • asset和res目录的区别

    容器

    • SpareArray原理

    JNI

    • 如何调用Java层代码

    虚拟机

    • 对Dalvik、ART虚拟机的基本了解
    • Android类加载机制

    Gradle

    • Android Studio build流程

    性能

    • 如何统计应用启动时长
    • 如何保证应用启动不卡顿,加快启动速度
    • 如何保持应用稳定性
    • 如何去除重复代码
    • 启动优化、布局优化、内存优化、网络优化、电量优化

    框架

    • Android架构图
    • 应用安装流程
    • 应用启动流程
    • 系统启动流程
    • 权限管理系统,动态权限适配方案,权限组概念
    • App沙箱化机制

    开源框架

    • RxJava功能与原理,相比平时的异步操作的优势
    • OkHttp功能与原理,如何处理网络缓存
    • EventBus功能与原理
    • Glide功能与原理,使用的缓存,如何控制内存缓存大小

    架构

    • 模块化的实现及好处
    • 组件化
    • MVC、MVP、MVVM
    • 观察者模式,单例模式
    • 适配器模式、装饰者模式、外观模式的异同

    高级

    • 动态加载
    • 插件化
    • 热修复

    项目

    • 进程如何保活
    • 如何唤醒其他进程
    • 多线程断点续传原理及实现
    • 开启摄像头的主要步骤
    • 微信主页面的实现方式
    • 微信上消息小红点的原理

    二、Java

    面向对象

    • 抽象类与接口的区别
    • 内部类、静态内部类与匿名内部类,以及在项目中的应用
    • 静态内部类的设计意图
    • Java四种引用,软引用与弱引用区别,强引用置为null,会不会被回收
    • Object类的equals和hashCode方法重写
    • ==、equals、hashCode区别

    String

    • String、StringBuffer、StringBuilder区别
    • String为何设计成不可变的
    • String to Integer

    容器

    • HashMap原理
    • HashMap与HashSet区别
    • ConcurrentHashMap原理
    • TreeMap原理
    • Set原理,Hash如何防止碰撞
    • 多线程操作List
    • Arraylist和Linkedlist的区别,以及应用场景
    • List、Set、Map区别
    • 容器与并发容器

    进程、线程、线程池

    • 进程与线程区别,为什么要有线程
    • ThreadLocal原理
    • 如何实现线程同步
    • volatile原理
    • synchronize原理
    • lock、ReentrantLock原理
    • synchronized与Lock区别
    • static synchronized方法的多线程访问和作用
    • 同一个类里面两个synchronized方法,两个线程同时访问的问题
    • CAS介绍
    • wait与notify
    • wait与sleep区别
    • 手写生产者/消费者模式
    • 死锁发生条件,如何避免死锁
    • 开启线程的三种方式,run()与start()方法区别
    • 线程如何关闭,如何防止线程的内存泄漏
    • Java线程池
    • 线程池的上限

    注解

    • 对注解的了解

    IO、NIO

    • 对NIO的了解

    虚拟机

    • JVM内存模型,内存区域,堆和栈,开线程影响哪块内存
    • 垃圾回收机制,对象创建,新生代与老年代
    • 垃圾回收机制与调用System.gc()区别
    • Java类加载器
    • 双亲委派模型
    • OSGI
    • 对象的生命周期

    三、网络协议

    Http、Https

    • Https请求慢的解决办法,DNS,携带数据,直接访问IP
    • Https如何验证证书的合法性,哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解

    TCP、UDP

    • TCP与UDP的区别
    • TCP三次握手与四次挥手

    Socket、WebSocket

    • WebSocket与Socket区别

    四、数据结构与算法

    排序

    • 快速排序,实现及时间复杂度、空间复杂度
    • 堆排序,实现及时间复杂度、空间复杂度

    • 二叉树,深度遍历与广度遍历
    • B树,B+树

    • 有向无环图

    链表

    • 判断单链表是否成环
    • 翻转一个单向链表
    • 合并多个单有序链表(假设都是递增的)

    其它

    • 两个不重复的数组集合中,求共同的元素
    • 对上一问进行扩展,海量数据,内存中放不下,怎么求出

    五、其它

    • 视频加密传输
    • 逻辑地址与物理地址,为什么使用逻辑地址
    • 加密算法(Base64、MD5、对称加密和非对称加密)和使用场景

    相关链接

    Android题目1
    Android题目2

    相关文章

      网友评论

          本文标题:Android题目

          本文链接:https://www.haomeiwen.com/subject/zixcqhtx.html