- 博客(18)
- 收藏
- 关注
原创 中高级安卓那些 面试官 最爱问的原理问题(三)之activity的启动流程
activity 如何启动的? activity启动流程是一个庞大的题目,足够灵活启动过程中涉及到与AMS的交互与插件化紧密相关参数传递机制的可与架构设计联系进行迁移生命周期与窗口展示可以向事件处理,UI 绘制等话题迁移下面简单介绍一下启动过程1、无论是通过Launcher启动,还是通过activity 内部来调用startActivity接口 来启动新的acti...
2020-01-22 11:00:31
444
原创 中高级安卓那些 面试官 最爱问的原理问题(二)
如何在 Android 中写出优雅的异步代码?为了避免 回调地狱使用Rxjava将异步逻辑扁平化,注意异常处理和取消处理使用kotlin协程将异步任务逻辑同步化,注意异常处理和取消处理...
2020-01-21 17:21:13
222
原创 面试官 最爱问的线程问题
1、如何停止一个线程官方停止线程的stop方法被废弃,所以不能直接简单的停止线程。协作的任务执行模式通知目标线程自行结束,而不是强制停止,目标线程应当具备处理中断的能力,中断方式 Interrupt,(volatile)boolean标志位interrupted() 是静态方法,获取当前线程的中断状态,并清空 当前运行的线程 中断状态调用后清空,重复调用后续返回false...
2020-01-21 15:19:49
190
原创 安卓 ANR 是什么,怎么避免
ANR是什么,如何避免它ANR 的全称是 Application Not Responding,中文是应用程序没有响应的意思。那么我们在实际开发中如何避免这个问题,首先我们要从四大组件最大的耗时说起:1. Activity:输入事件(按键和触摸事件)5s 内没被处理2. BroadcastReceiver:在 10s 内发送的广播没有处理完成3. Service:前台 Se...
2020-01-21 11:00:51
616
原创 安卓gradle知识点
你用Gradle在实际开发中做过那些事1、通用配置抽取(版本号统一,AppCompat集成)2、Apk签名配置(配置 debug 和 release 包的签名信息)3、Apk 输出名称(配置 Apk输出的名称,默认是 app_debug.apk)4、多渠道打包(配置第三方应用市场名称,用于统计用户渠道以及投放广告)api和implementation有什么区别从 ...
2020-01-21 10:54:46
219
原创 中高级安卓那些 面试官 最爱问的原理问题(一)
1、Java泛型的实现机制是怎样的?Java 泛型采用 类型擦除实现类型编译时被擦除为 object, 不兼容基本类型类型擦除的实现方案主要考虑向后兼容泛型类型签名信息特定场景下反射可获取结合项目实践, 例如 Gson, Retrofit。 实战中经常需要混淆,需要注意哪些点以及原理2、Activity 的 onActivityResult使用起来非常麻烦,为什么不设...
2020-01-21 10:43:22
345
原创 安卓中那些 面试官 最爱问的看似简单实则暗藏玄机的问题(三)
怎么理解 Java 的方法分派?静态分派 方法重载分派编译期确定,根据调用者的声明类型和方法参数类型动态分派 方法复写分派运行时确定 根据调用者的实际类型分派...
2020-01-20 17:40:28
153
原创 安卓中那些 面试官 最爱问的看似简单实则暗藏玄机的问题(二)
Java 的匿名内部类有哪些限制?无处不在的匿名内部类button.setOnClickListener(new OnClickListener(){});在虚拟机中,匿名内部类有名字, OuterClass$1class RunnableFoo extends Foo implements Runnable{};匿名内部类不能这样写,但是局部类可以,但是kotl...
2020-01-20 16:07:41
329
原创 安卓中那些 面试官 最爱问的看似简单实则暗藏玄机的问题(一)
Java 的 char 是两个字节,如何存 UTF-8 的字符?char是 2 个byte,UTF-8 是 1-3 个byte,1、Java char 不存在 UTF-8的字节,而是UTF-16的。2、Unicode 通用字符集占两个字节,例如“中”。3、Unicode 扩展字符集需要用一对 char 来表示。4、Unicode 是字符集,不是编码,作用类似于 ASC...
2020-01-20 14:31:56
469
1
原创 子线程能创建handler吗
这是之前碰到的一个面试题,准确的来说,子线程是可以创建hanlder的,但是如果你直接使用new thread来创建,代码会报loop的空指针错误,原因如下文,但是,Google给我们提供了HandlerThread,我们当然也可以利用HandlerThread中的思想在newThread里面实现子线程创建handler而不报错默认情况下,ActivityThread类为我们创建的了主线程的L...
2019-11-21 15:36:22
956
原创 Activity启动模式以及flags
启动模式1、standard 标准模式,每次启动activity都会创建一个实例,不管这个实例存不存在2、singleTop 栈顶复用模式 ,启动位于栈顶的activity,将不会重新创建,此时他的onNewIntent方法会被回调,onCreate,onStart方法不会调用,和标志位 FLAG_ACTIVITY_SINGLE_TOP一样3、singleTask 栈内复用模式 也是...
2019-07-09 14:47:11
174
原创 Android Studio 新建项目app为空
前几天更新了一下Android studio ,今天新建项目的时候发现创建失败,他的app为空,下面是报的错误,很多人肯定想着这简单啊,重装一下androidstudio不就好了,这样是好了,但是是不是费时费力,java.lang.RuntimeException: com.android.tools.idea.templates.FreemarkerUtils$Tem...
2019-07-09 11:08:14
1261
1
原创 单例模式
单例模式是Java中比较常见的一种设计模式,,他的写法有很多,到那时主要是饿汉式和懒汉式单例模式主要特点:单例模式的构造方法是私有的,他只有一个实例单例类的只能自己创建自己的唯一实例单例的实例只能通过他写的静态私有方法访问/** * Created by jcx on 2017/10/2 * 饿汉式单例模式 */public class Singleton {...
2019-05-13 16:12:38
127
原创 activity获取子fragment的控件
在adapter里面定义currentFragment 重写 setprimarryItem方法 使用 adapter.currentFragment .getView().findViewByIdpublic class AdapterViewPager extends FragmentStatePagerAdapter { public Fragment currentFragment; ...
2018-06-14 18:31:40
2717
原创 AndroidStudio中的 .sh 文件执行出错 (Windows执行shell脚本)
windows执行shell命令下载cywin 安装过程中选择自己需要的组件包 为了使我们安装的Cygwin能够编译程序,需要安装gcc编译器,选择Devel 下的 binutils gcc gcc-mingw gdb 验证cywin安装成功 cygcheck -c cygwin 为了在windows的工作窗口执行Cygwin的命令,可以将Cygwin的安装目录的bin文件配置windows的环境...
2018-06-08 16:15:14
3975
原创 Android studio新建项目失败
前几天更新了Android studio 结果今天新建项目的时候发现新建失败,,这时候很多人想着重装不就好了,重装是可以,但是费时费力,下面我们用最简单的方法来解决创建失败错误信息如下java.lang.RuntimeException:com.android.tools.idea.templates.FreemarkerUtils$TemplateProcessingExcepti
2017-09-11 16:24:00
1165
原创 Android 学习网址大全
刚刚申请了csdn账号,就想把自己收藏的一些网址汇总整理一些方便自己查阅git https://git-scm.com/git windows GUI客户端:https://tortoisegit.org/git文档:https://git-scm.com/docsJDK8: http://download.oracle.com...
2017-07-28 14:47:20
811
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人