写点什么

兄弟们,这年头,咱移动客户端工程师还有前途吗,flutter 图片压缩上传

用户头像
Android架构
关注
发布于: 11 小时前

数据结构


  • 栈和队列

  • 数组和链表,自定义一个动态数组

  • Hash 表,及 Hash 冲突的解决

  • 二叉树

  • B+ B-树

  • 基础排序算法:重点 快排、归并排序、堆排序(大根堆、小根堆)

  • 快排的优化

  • 二分查找与变种二分查找

  • 哈夫曼树、红黑树

  • 字符串操作,字符串查找,KMP 算法

  • 图的 BFS、DFS、prim、Dijkstra 算法(高阶技能)

  • 经典问题:海量数据的处理 (10 亿个数中找出最大的 10000 个数 TOP K 问题)

[](

)算法



    《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
    浏览器打开:qq.cn.hn/FTe 免费领取
    复制代码


    分治算法


    • 动态规划

    • 贪心算法

    • 分支限界法

    [](

    )Android 基础


    • Android Activity 生命周期

    • Application 生命周期

    • Android Service、IntentService,Service 和组件间通信

    • Activity 的 onNewIntent

    • Fragment 的懒加载实现,参数传递与保存

    • ContentProvider 实例详解

    • BroadcastReceiver 使用总结

    • Android 消息机制

    • Binder 机制,共享内存实现原理

    • Android 事件分发机制

    • Android 多线程的实现:Thread、HandlerThread、AsyncTask、IntentService、RxJava

    • ActivityThread 工作原理

    • 嵌套滑动实现原理

    • RecyclerView 与 ListView(缓存原理,区别联系,优缺点)

    • View 的绘制原理,自定义 View,自定义 ViewGroup

    • View、SurfaceView 与 TextureView

    • 主线程 Looper.loop 为什么不会造成死循环

    • ViewPager 的缓存实现

    • requestLayout,invalidate,postInvalidate 区别与联系

    • AndroidP 新特性

    • Android 两种虚拟机

    • ADB 常用命令

    • Asset 目录与 res 目录的区别

    • Android SQLite 的使用入门

    [](

    )Android 开发高级

    [](

    )Android 技术难点


    AIDL、Binder、多进程、View 的绘制流程、事件分发、消息队列等


    这类知识对于定位自己为高级 Android 工程师的人来说是必须掌握的,同时他也是能鉴别高级和初中级工程师的一块试金石,其中 binder 是 Android 系统进程间通信最重要的手段之一,现阶段 app 的发展离不开多进程的运用,经常会启动例如定位、推送等需要在后台开启动的进程来来保证主进程的内存运行;所以合理的使用多进程也是十分必要的;view 的绘制是我们自定义控件的理论基础,只有掌握了 view 是如何绘制的才能个性化的自定义控件;事件分发一直是 Android 开发的难点之一,也是必须掌握的;关于 handler 机制也是 android 的一块难点,因为包括 Asynctask、系统启动、Intentservice 等底层都是通过 handler 来实现的,所以掌握后 handler 机制不仅能提高你的实战开发能力,更能让你系统的了解整个 android 系统运作的情况。

    [](

    )Android 框架层源码掌握


    • Android 包管理机制,核心 PackageManagerService

    • Window 管理,核心 WindowManagerService

    • Android Activity 启动和管理,核心 ActivityManagerService

    • 根 Activity 工作流程

    • Context 关联类

    • 各种原理,经典第三方库源码系列

    • 自定义 LayoutManager,RecyclerView 中如何自定义 LayoutManager

    • VLayout 实现原理,即如何自定义 LayoutManager

    • Glide 加载原理,缓存方案,LRU 算法

    • Retrofit 的实现与原理

    • OKHttp3 的使用,网络请求中的 Intercept

    • EventBus 实现原理

    • ButterKnife 实现原理

    • RxJava 实现原理

    • Dagger 依赖注入

    • 热修复实现原理,解决方案

    • 组件化原理和解决方案

    [](

    )Android 进程通信以及多进程开发


    Android 多进程和 Application 关系


    经典解决方案:多进程通信解决方案:Andromeda


    • Android 动画机制

    • Android 绘图原理

    • Android 页面恢复


    Android 的页面恢复采用以下两个方法:


    • onSaveInstanceState(Bundle outState)

    • onRestoreInstanceState(Bundle savedInstanceState)


    onSaveInstanceState :当 Activity 容易被系统销毁时,会触发该方法。具体的说:


    • 用户点击 Home 键

    • 用户点击 Home 键,切换到其他应用程序

    • 有电话来了等附加操作

    [](

    )混合开发及 Android WebView 应用


    混合开发涉及到的知识点主要包括:


    • APP 调用 WebView 加载 url

    • 掌握 WebView 的封装,了解所有的 WebSettings 配置,掌握 WebViewClient、* WebChromeClient

    • 掌握 WebView 和 Native 双向通信机制,会自己封装双向通信中间件

    • 对 WebView 的封装可参考:GitHub: AgentWeb

    • 对通信中间件原理理解:GitHub:webprogress

    [](

    )Gradle,自动化构建,持续集成相关


    Android 系统


    Android Studio 编译过程


    其中使用到的编译工具:


    aapt、aidl、Java Compiler、dex、 zipalign


    主要步骤描述:


    • 通过 aapt 打包 res 资源文件,生成 R.java、resources.arsc 和 res 文件(二进制 & 非二进制如 res/raw 和 pic 保持原样)

    • 处理.aidl 文件,生成对应的 Java 接口文件

    • 通过 Java Compiler 编译 R.java、Java 接口文件、Java 源文件,生成.class 文件

    • 通过 dex 命令,将.class 文件和第三方库中的.class 文件处理生成 classes.dex

    • 通过 apkbuilder 工具,将 aapt 生成的 resources.arsc 和 res 文件、assets 文件和 classes.dex 一起打包生成 apk

    • 通过 Jarsigner 工具,对上面的 apk 进行 debug 或 release 签名

    • 通过 zipalign 工具,将签名后的 apk 进行对齐处理。

    [](

    )App 启动加载过程


    Android 虚拟机 Android App 运行的沙箱原则

    [](

    )Android 架构


    在 Android 源码中最重要的三个类:ActivityManagerService/PackageManagerService/View,推荐大家周末的时候可以去阅读下这部分的源码,阅读源码能提高我们今后设计架构自己代码的能力,同时也能从底层了解整个 android 系统的运行原理,其他一些比如主线程的消息循环、主线程如何和 AMS 如何跨进程交互、SystemServer 进程中的各种 Service 的工作方式、AsyncTask 的工作原理等。这些知识也是作为一个 Android 高级开发工程师必须掌握的,不能整天沉溺于 ui 和四大组件的交互,要站在更高的角度去考虑 Android 的有些问题。


    • MVC 模式

    • MVP 模式

    • MVVM 模式

    • CLEAN 模式

    • 组件化开发

    • 跨平台开发:Flutter、ReactNative(RN 未来要黄,了解一下就好)

    [](

    )移动开发外围


    服务器开发相关


    • SpringBoot 技术

    • Restful API 开发

    • 网络协议理解:TCP/IP、HTTP/HTTPS、OSI 七层协议

    用户头像

    Android架构

    关注

    还未添加个人签名 2021.10.31 加入

    还未添加个人简介

    评论

    发布
    暂无评论
    兄弟们,这年头,咱移动客户端工程师还有前途吗,flutter图片压缩上传