Jaqen's Blog

Jaqen's Blog

Android 面试题(6):谈谈你对 ANR 的了解?
什么是 ANRANR(Application Not responding),即应用程序无响应,简单来说,就是用户界面突然卡住,无法响应用户的操作(比如触摸事件)。 Android 系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成 ANR。一般情况下,ANR 后会弹出一个提示框,告知用户当前应用无响应,用户可选择继续等待或者关闭应用。 出现场景 InputDispatching Timeout:5 秒内无法响应屏幕触摸事件或键盘输入事件。 BroadcastQueue Timeout :在执行前台广播(BroadcastRece...
每周分享第 2 期
这里记录过去一周,我看到的值得分享的内容。 (题图:J. Berengar Sölter ) 文章1、我们在淘宝京东拼多多买东西时,有哪些价格歧视? 作者在京东工作,对平台和商家的一些商业套路比较了解。文章深入介绍了价格歧视的原理,商家使用的价格歧视策略。 2、淘宝 1 小时交易额破千亿! 作者在双 11 前使用天猫历年交易额,做了一个多项式的拟合,预测了今年双 11 的交易额是 2692 亿,最终的结果是 2684 亿 ,不得不说,非常神奇。 3、想砍死北野武的女人们 文章介绍了北野武戏剧性的一生,值得一看。 “ 我认为,一个人是不是长大成熟,由他对父母的感情方式来判定。当你面对父...
Android 面试题(5):谈谈 Handler 机制和原理?
这一系列文章致力于为 Android 开发者查漏补缺,准备面试。 所有文章首发于公众号「JaqenAndroid」,长期持续更新。 由于笔者水平有限,总结的内容难免会出现错误,欢迎留言指出,大家一起学习、交流、进步。 1、说一下 Handler 消息机制中涉及到哪些类,各自的功能是什么?Handler 主要用于跨线程通信。涉及MessageQueue/Message/Looper/Handler 这 4 个类。 Message:消息,分为硬件产生的消息和软件生成的消息。 MessageQueue:消息队列,主要功能是向消息池投递信息 (MessageQueue.enqueueM...
每周分享第 1 期
这里记录过去一周,我看到的值得分享的内容。 (题图:大学一角,2019.10) 非常喜欢阮一峰老师的科技互联网周刊,增长了不少见识,也很佩服阮老师的坚持。信息爆炸的时代,能够阅读到优质内容很不容易。 受阮老师的启发,将每周看到的优质内容分享出来,应该挺有价值的。其实,分享本身就是一件有趣有意义的事。 文章1、GQ报道 | 幸存者李佳琦:一个人变成算法,又想回到人 万字长文,GQ 带你走近当事人李佳琦,也许和你想象的不一样。 “李佳琦”这个符号是这台精密齿轮上最关键的部件,他也无法停止直播:“我不播了,那外面我的同事们怎么办?” 外面的同事怎么办? 2、你适合搞副业么? 其实搞副业这事...
Android 面试题(4):谈谈 Activity 的启动模式
这一系列文章致力于为 Android 开发者查漏补缺,面试准备。 所有文章首发于公众号「JaqenAndroid」,长期持续更新。 由于笔者水平有限,总结的答案难免会出现错误,欢迎留言指出,大家一起学习、交流、进步。 众所周知,Activity 有 4 种启动模式,分别是:standard、singleTop、singleTask 和 singleInstance,它们控制了 Activity 的启动行为,不同的启动模式使用于不同的应用场景。 启动的 Activity 会放在任务栈中,任务栈是一种后进先出的结构,按 Back 键的时候栈顶 Activity 会从任务栈中返回,当任务栈...
Android 面试题(3):回答一下什么是强、软、弱、虚引用以及它们之间的区别?
这一系列文章致力于为 Android 开发者查漏补缺,面试准备。 所有文章首发于公众号「JaqenAndroid」,长期持续更新。 由于笔者水平有限,总结的答案难免会出现错误,欢迎留言指出,大家一起学习、交流、进步。 从 JDK1.2 版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。 1、强引用(Strong Reference)强引用就是我们经常使用的引用,其写法如下: 1Object o = new Object(); 特点: 只要还有强引用指向一个对象,垃圾收集器就不会回收这个对象。 显式...
Android 面试题(2):一般什么情况下会导致内存泄漏问题?
这一系列文章致力于为 Android 开发者查漏补缺,面试准备。 所有文章首发于公众号「JaqenAndroid」,长期持续更新。 由于笔者水平有限,总结的答案难免会出现错误,欢迎留言指出,大家一起学习、交流、进步。 内存泄漏也是面试常见问题,主要可以考察面试者是否了解内存泄漏,工作中是如何排查解决内存泄漏问题,还可以延伸考察 Java 内存回收机制,Java 中对象的引用方式等等。 这篇文章先来介绍下 Android 开发中常见的内存泄漏案例以及相应的解决方案。 单例造成的内存泄漏单例模式在 Android 开发中使用率非常高,但使用不恰当的话也会造成内存泄漏。比如下面的代码: 1...
Android 面试题(1):使用 Handler 时如何有效地避免内存泄漏问题?
这一系列文章致力于为 Android 开发者查漏补缺,面试准备。 所有文章首发于公众号「JaqenAndroid」,长期持续更新。 由于笔者水平有限,总结的答案难免会出现错误,欢迎留言指出,大家一起学习、交流、进步。 什么是内存泄漏?Java 中采用可达性分析算法判断一个对象是否可被回收。 基本思路是这样的: 通过一系列称为 “GC Roots” 的对象作为起始点,从这个节点向下搜索,搜索走过的路径就是引用链,当一个对象到 GC Roots 没有任何引用链相连,也就是从 GC Roots 到这个对象不可达,则这个对象不可达,可以被回收。 可作为 GC Roots 的对象有: 虚拟机...
ijkplayer 编译实践
记录 ijkplayer 的编译过程,以及遇到的问题,有需要的朋友可以参考。 编译环境Linux 环境由于主机是 Windows 系统,所以使用 VMware 安装了 Ubuntu 18.0.4 系统。 VMware 安装 Ubuntu 系统的安装步骤网上非常多,这篇文章比较详细,没有经验的可以参考。 https://zhuanlan.zhihu.com/p/38797088 Android SDK下载地址:https://developer.android.com/studio#downloads Android NDK下载地址:https://developer.android.go...
Ubuntu 下 Android Studio 安装与配置
本文主要记录一下 Ubuntu 环境下 Android Studio 的安装和配置,方便查找使用。 Android Studio 安装Android Studio 下载地址: https://developer.android.com/studio 下载后,直接解压即可。 然后进入 /android-studio/bin/ 文件下,会看到一个studio.sh的执行文件。 终端命令进入 /android-studio/bin/ , 执行命令 ./studio.sh ,进行安装即可,没啥好说的。 12cd android-studio/bin./studio.sh Android Stu...
avatar
Jaqen Ng