三年开发经验,从小厂离职后,我凭什么拿到了阿里,作为一个 Android 开发者
[]( )**Android 高级** --------------------------------------------------------------------------------- ### []( )**一、 Android 性能优化** 1、 如何对 Android 应用进行性能分析 2、 什么情况下会导致内存泄露 3、 如何避免 OOM 异常 4、 Android 中如何捕获未捕获的异常 5、 ANR 是什么?怎样避免和解决 ANR(重要) 6、 Android 线程间通信有哪几种方式(重要) 7、 Devik 进程,linux 进程,线程的区别 8、 描述一下 android 的系统架构? 9、 android 应用对内存是如何限制的?我们应该如何合理使用内存? 10、 简述 android 应用程序结构是哪些? 11、 请解释下 Android 程序运行时权限与文件系统权限的区别? 12、 Framework 工作方式及原理,Activity 是如何生成一个 view 的,机制是什么? 13、 多线程间通信和多进程之间通信有什么不同,分别怎么实现? ### []( )**二、 Android 屏幕适配** 1、 屏幕适配方式都有哪些 2、 屏幕适配的处理技巧都有哪些 ### []( )**三、 AIDL** 1、 什么是 AIDL 以及如何使用 2、 AIDL 的全称是什么?如何工作?能处理哪些类型的数据? ### []( )**四、 Android 中的事件处理** 1、 Handler 机制 2、 事件分发机制 3、 子线程发消息到主线程进行更新 UI,除了 handler 和 AsyncTask,还有什么? 4、 子线程中能不能 new handler?为什么? ### []( )**五、 Android 中的动画** 1、 Android 中的动画有哪几类,它们的特点和区别是什么 2、 如何修改 Activity 进入和退出动画 3、 属性动画,例如一个 button 从 A 移动到 B 点,B 点还是可以响应点击事件,这个原理是什么? ### []( )**六、 ContentObserver 内容观察者作用及特点** #### []( )**项目框架的使用** 一、 自我介绍 二、 开发中都使用过哪些框架、平台 三、 都使用过哪些自定义控件 四、 自定义控件:绘制圆环的实现过程 五、 自定义控件:摩天轮的实现过程 六、 自定义控件:可拖拽排序的 GridLayout 的实现过程 七、 流式布局的实现过程 八、 项目的流程 九、 项目中常见的问题 十、 即时通讯是是怎么做的? 十一、 设计模式六大原则 十二、 第三方登陆 十三、 第三方支付 十四、 常见框架分析 []( )Flutter 相关面试题全解析 ---------------------------------------------------------------------------------- ### []( )Dart 部分 1.Dart 语言的特性? 2.Dart 的一些重要概念? 3.Dart 当中的 「…」表示什么意思? 4.Dart 多任务如何并行的? 5.dart 是值传递还是引用传递? 6.Dart 属于是强类型语言 ,但可以用 var 来声明变量,Dart 会自推导出数据类型,var 实际上是编译期的“语法糖”。dynamic 表示动态类型, 被编译后,实际是一个 object 类型,在编译期间不进行任何的类型检查,而是在运行期进行类型检查。 7.Dart 中 if 等语句只支持 bool 类型,switch 支持 String 类型。 8.Dart 中数组和 List 是一样的。 9.Dart 中,Runes 代表符号文字 , 是 UTF-32 编码的字符串, 用于如 Runes input = new Runes(’\\u{1f596} \\u{1f44d}’); 10.Dart 支持闭包。 11.Dart 中 级联操作符 可以方便配置逻辑,如下代码: 12.说一下 Future? 13.说一下 Stream? 14.说一下 mixin? 15.Widget 和 element 和 RenderObject 之间的关系 16.widget 树的 root 节点 17.mixin extends implement 之间的关系 18.Future 和 microtask 执行顺序 19.await for 的使用方式 20.赋值操作符 21.可选方法参数 22.作用域 23.构造方法 24.getter setter 重写 25.Assert(断言) 26.重写运算符,如下所示重载 operator 后对类进行 +/- 操作。 ### []( )Flutter 部分 1.Flutter 是什么? 2.Flutter 特性有哪些? 3.基础知识 4.Flutter 中的生命周期 5.PlatformView 6.Platform Channel 7.Android 启动页 8.Flutter 和 Dart 的关系是什么? 9.Widget 和 element 和 RenderObject 之间的关系? 10.mixin extends implement 之间的关系? 11.使用 mixins 的条件是什么? 12.mixin 怎么指定异常类型? 13.Flutter main future mirotask 的执行顺序? 14.Future 和 Isolate 有什么区别? 15.Stream 与 Future 是什么关系? 16.Stream 两种订阅模式? 17.await for 如何使用? 18.Flutter 中的 Widget、State、Context 的核心概念?是为了解决什么问题? 19.Widget 的两种类型是什么? 20.State 对象的初始化流程? 21.Widget 唯一标识 Key 有那几种? 22.什么是 Navigator? MaterialApp 做了什么? 23.flutter 与 React Native 有什么不同? 24.为什么说 flutter 是原生的 25.讲一下 flutter 的几个特点/优缺点 26.什么是 ScopedModel / BLoC 模式? 27.什么是 stateWidget 和 statelessWidget? 28.谈一下 flutter state 的生命周期 29. ``` 《Android 学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》 浏览器打开:qq.cn.hn/FTe 免费领取 ``` StatefulWidget 的生命周期 30.Flutter 如何与 Android iOS 通信? 31.什么是 Widgets、RenderObjects 和 Elements? 32.说一下什么是状态管理,为什么需要它? 33.说一下 BLoC 模式? 34.如何统一管理错误页面? []( )腾讯、阿里、百度、美团、字节跳动、京东等)Android 高频面试真题集锦 ------------------------------------------------------------------------------------------------------- 1.android 事件分发机制,请详细说下整个流程 2.android view 绘制机制和加载过程,请详细说下整个流程 3.android 四大组件的加载过程,请详细介绍下 4.Activity 的启动模式 5.A、B、C、D 分别是四种 Activity 的启动模式,那么 A->B->C->D->A->B->C->D 分别启动,最后的 activity 栈是怎么样的 6.Activity 缓存方法 7.Service 的生命周期,两种启动方法,有什么区别 8.怎么保证 service 不被杀死 9.静态的 Broadcast 和动态的有什么区别 10.Intent 可以传递哪些数据类型 11.Json 有什么优劣势、解析的原理 12.一个语言的编译过程 13.动画有哪几类,各有什么特点 14.Handler、Looper 消息队列模型,各部分的作用 15.怎样退出终止 App 16.Android IPC:Binder 原理 17.描述一次跨进程通讯 18.android 重要术语解释 19.理解 Window 和 WindowManager#\_Toc13399 ) 21.如何实现一个网络框架(参考 Volley) 22.ClassLoader 的基础知识 23.插件化框架描述:dynamicLoadApk 为例子 24.热修复:Andfix 为例子 25.线程同步的问题,常用的线程同步 26.Asynctask 和线程池,GC 相关(怎么判断哪些内存该 GC,GC 算法) 27.网络 TCP 协议与 UDP 协议的区别 28.数据库性能优化:索引和事务,需要找本专门的书大概了解一下 29.13.APK 打包流程和其内容 30.网络劫持的类型原理:可以百度一下了解一下具体概念 31.java 类加载过程: 32.retrofit 的了解 33.bundle 的数据结构,如何存储 34.listview 内点击 buttom 并移动的事件流完整拦截过程: 35.service 的意义:不需要界面,在后台执行的程序 36.android 的 IPC 通信方式,线程(进程间)通信机制有哪些 37.操作系统进程和线程的区别 38.HashMap 的实现过程:Capacity 就是 buckets 的数目,Load factor 就是 buckets 填满程度的最大比例。如果对迭代性能要求很高的话不要把 capacity 设置过大,也不要把 load factor 设置过小。 39.mvc、mvp、mvvm: 40.java 的线程如何实现 41.ArrayList 如何删除重复的元素或者指定的元素; 42.如何设计在 UDP 上层保证 UDP 的可靠性传输; 43.Java 中内部类为什么可以访问外部类 44.设计移动端的联系人存储与查询的功能,要求快速搜索联系人,可以用到哪些数据结构?数据库索引,平衡二叉树(B 树、红黑树) 45.红黑树特点 46.linux 异步和同步 i/o: 47.ConcurrentHashMap 内部实现,HashTable 的实现被废弃的原因: 48.HandlerThread 是什么 49.IntentService 是什么 50.class 和 dex 51.内存泄漏 52.过度绘制、卡顿优化: 53.apk 瘦身: 54.ANR 的形成,各个组件上出现 ARN 的时间限制是多少 55.Serializable 和 Parcelable 的区别 56.Sharedpreferences 源码简述
评论