写点什么

Android 学习别“走弯路”,django 实战项目源码

用户头像
Android架构
关注
发布于: 刚刚

15.优化篇,过度绘制,OOM,内存泄漏,布局优化



大厂面试题


1.有个问题很常见:你了解过哪些开源框架?


2.okhttp 或者 retrofit 必须了解一下底层原理,即使不能读好源码,也要看看别人是怎么分析的


3.如今热更新和插件化特别火,一定要能说出来几种,并简单说明原理


4.MVC MVP MVVM 优缺点,一点要说出自己的切身体会


5.Fragment,生命周期和使用方法


6.Rxjava 尽量也看看


7.注解机制,现在这么多使用注解的框架


8.Acitvity 的生命周期是什么样的?


9.Acitvity 的生命周期,如何摧毁一个 Activity? (美团)


10.Intent 显示跳转与隐式跳转,如何使用?(美团)


11.Activity A 跳转 B,B 跳转 C,A 不能直接跳转到 C,A 如何传递消息给 C?(美团)


12Activity 如何保存状态的?


13.请描述 Activity 的启动流程,从点击图标开始。(B 站)


14.你会在什么情况下使用 Service?


15.startServer 和 bindServier 的区别?(美团)


16.Service 和 Thread 的区别?


17.IntentService 与 Service 的区别?


18.ContentProvider 如何自定义与使用场景是什么?


19.BroadcastReciver 的静态注册与动态注册的区别?


20.广播的分类与工作原理


Java 基础知识我是参照的《Thinking in Java》这个书和网上的博文,别的我也没买。


网上 Java 的资料非常多,但是确实有很多写的不好,甚至有一些错误的,大家阅读要小心了。


Java 主要知识点:




1.修饰符


2.类 接口 抽象类 匿名内部类 回调机制


3.几种基本类型,长度,边界


4.从 Iterator 到 Collection,再到 Set List Map(必问)


5.从以下几个角度理解学习:用法,具体实现类,线程安全性,底层数据存储结构,某些场景下如何选用?比如 ArrayList 和 LinkedList 如何选用 线程相关(必问)


6.锁机制 synchronize 用法


7.实现一个死锁


8.同步,生产者消费者模型


9.Thread 中的几个常用方法 比如问你 sleep 和 wait 区别


10.线程安全


11.JVM 了解一些,GC 了解一下,堆和栈的区别等


12.静态代理,动态代理 反射


13.设计模式 单例模式(要会写)。


面试题


工厂模式,抽象工厂,观察者模式等大厂面试题什么情况下会发生栈内存溢出?


如果让你写一段栈溢出的代码你会什么写,一个栈大概有多大,为什么?


每个线程都有这样大小的一个栈吗? (美团)


JVM 中一次完整的 GC 流程是怎样的,对象如何晋升到老年代?


介绍下 GC 回收机制与分代回收策略。Java 中有几种引用关系,它们的区别是什么?


GC 收集算法有哪些?它们的特点是什么?


如何判断一个对象是否被回收,有哪些 GC 算法,实际虚拟机使用最多的是什么 GC 算法?(美团)


Jvm 内存 结构说一下。(东方头条)


JVM DVM ART 的区别(360)


描述 GC 机制。Class 会不会回收?用不到的 Class 怎么回收?(东方头条)


StackOverFlow 与 OOM 的区别?分别发生在什么时候。


JVM 栈中存储的是什么,堆存储的是什么?(美团)


Java 虚拟机和 Dalvik 虚拟机的区别?请描述 new 一个对象的流程。


Java 对象会不会分配到栈中?


String, Stringbuffer, StringBuilder 的区别是什么?(东方头条)


String StringBuffer StringBuilder 在进行字符串操作时的效率;


这里主要考察 String 在内存中是如何创建的。(字节跳动)


String 为什么是不可变的?(字节跳动)


String 为什么设计成 final 的?final 、finally、finalize 区别。抽象类和接口的区别。重载和重写的区别 (京东)


什么是值传递和引用传递,Java 是值传递还是引用传递?


算法和数据结构主要知识点:




1.数组,链表,队列,栈,图


2.不会直接问你,会让你找到用处,比如 Activity 任务栈


3.算法


4.基本几种排序复杂度和思路


5.几种查找复杂度和思路


6.串的处理


大厂面试题


1.如何在一个 1 到 100 的整数数组中找到丢失的数字?


2.腾讯如何在给定的整数数组中找到重复的数字?


3.小米如何在未排序整数数组中找到最大值和最小值?


4.字节跳动在 Java 中如何从给定数组中删除多重复制? (百度)


5.常用的数据结构有哪些?


6.B 站一个数组插入删除查找和链表的效率对比?


7.如果一个数组要反复插入删除怎么优化降低时间复杂度? (腾讯)


8.arrayList 底层原理 (滴滴 字节跳动)


9.如何在一次遍历中找到单个链表的中值? (中国平安)


10.如何证明给定的链表是否包含循环?如何找到循环的头节点? (优酷)


11.两个有交叉的单链表,求交叉点 华为如何得到单链表的长度? (360)


12 如何在不使用递归的情况下逆转单链表? (小米/美团)


架构师筑基必备技能




目前 Android APP 开发主流语言就是 Java 语言,Java 语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用 Java 语言来进行编写的。


JAVA 知识要点


1、 Java 序列化、泛型与反射


2、虚拟机底层原理


3、Android 内存原理


4、 Java 高级并发原理详解


5、 编译时技术掌握与实战


6、JDK 高级动态代理


7、高级数据结构与算法


8、 Java IO 操作


9、


。。。。



Android R FrameWork 源码与 UI




在 Android 中,Framework 泛指系统架构层。Framework 的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运行机制,通常 Framework 都会隐藏 main 函数等应用程序必须的组件,开发人员只需把精力放在功能代码的实现上。说简单点,Framework 具体的工作也就是为 android 应用开发的开发人员提供了一系列的服务和 API 的接口。


UI 其实并不


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


是单纯指用户看到的效果。因为在 Android 开发中,每个控件背后都有一套深层次的体系在支撑,自然而然,会 UI 不单纯指的是会自定义控件,我们还应该知道自定义控件背后的执行流程,包括从 Activity 的创建,XML 的解析,到每个控件的测量、布局、绘制。当然在中间还夹杂着比如动画、事件分发机制、嵌套滑动机制等知识点。还有谷歌提供的一些 UI 框架也使我们要掌握的对象,比如 Jetpack 组件库、Material Design 等。


知识要点


1、 FrameWork 源码解析(SDK 30)


2、Android 常用组件深入解析


3、JetPack 全家桶


4、Android R 新特性解析


。。。。。

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Android学习别“走弯路”,django实战项目源码