自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 [译] Kotlin 标准方法备忘,一文搞懂JVM架构

校对者:phxnirvana上周我在推特上谈到了 Kotlin 标准方法备忘的新内容,我发现它们比传统的方法更好。它并不关注每个方法的工作原理,而是根据开发人员想要实现的目标来提供指导:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9GLBX0EH-1630944841704)(https://user-gold-cdn.xitu.io/2019/4/26/16a5806c87aaf94a?imageView2/0/w/1280/h/960/ignore-erro..

2021-09-07 00:14:18 211

原创 [译] Java,Android开发基础不牢

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hq3G2CCB-1630944449420)(https://user-gold-cdn.xitu.io/2018/3/27/16265919f9c4b0d9?imageView2/0/w/1280/h/960/ignore-error/1)]React Native(7MB)如果你有前端(Web)的开发经验,并希望使用 JavaScript 来开发 App,那么 React Native 是一个不错的选择。如果你希望在已

2021-09-07 00:07:47 172

原创 [译] Android 的 Java 8 支持,阿里P8大佬整理

1 error; aborting这是因为 `lambda` 使用了 `invokedynamic` 字节码指令,`invokedynamic` 是在 `Java 7` 中引入的。上面的错误信息提示,`Android` 支持这种字节码的最低版本是 `26`。与此同时 `Android` 使用 `desugaring`(脱糖)兼容所有 `API` 版本上使用 `lambda` 表达式。### 2\. Desugaring(脱糖)的历史脱糖工具的发展史非常出彩,但是它的核心目标却是一致的:让所有的

2021-09-06 23:58:55 335

原创 Lottie动画资源放到服务器预下载,一文说清

callback?.invoke(true) return@apply } fetch.addListener(DownloadListener(groupId, size, callback)).enqueue(this) }}/** * 下载单个文件 */fun download(path: String, callback: ((Boolean) -> Unit)? = null) { ...

2021-09-05 22:27:32 766

原创 Linux编程之环境搭建与系统管理(一),吊打面试官系列

-i:显示主机的ip地址【参数说明】需要指定查看,设置的主机名【命令示例】显示主机的ip地址【# hostname -i】3.uname【命令作用】用于显示当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)【命令语法】uname(选项)【常用选项】-a:详细显示全部的信息【参数说明】无【命令示例】显示当前系统详细相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)uname -a4.date【命令作用】显示或设置系统时间与日期【命令语法】date(选项)

2021-09-05 22:25:54 103

原创 Linux编程之Linux-Shell-脚本编程(三,阿里P8大佬亲自教你

| -f | 判断是否为一般文件 || -r | 测试当前用户是否有权限读取 || -w | 测试当前用户是否有权限写入 || -x | 测试当前用户是否有权限执行 |[ -d test.txt ]测试test.txt是否为目录类型,$?显示上一条命令执行后的返回值。如果返回值为 0,则目录存在;如果返回值为非零的值,则意味着目录不存在。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-33cmKnrP-1630851849180)(//upload-images.j

2021-09-05 22:24:20 130

原创 LeakCanary原理,Android开发必学

我们首先看isInAnalyzerProcess方法,看注释如果是LeakCanary进程就不允许初始化其他任务。这个进程是为LeakCanary分析堆内存用的。 我们知道引入LeakCanary在你的项目编译成功之后会自动安装一个Leaks apk。看到上面LeakCanary.install(this)这行代码,是不是安装Leaks apk?是不是Leaks通过跨进程来检测我项目呢?检测原理又是怎样的?带着这些问题,接下来看看具体做了什么事情。会调用LeakCanary#install方法 首先我

2021-09-05 22:22:37 172

原创 Kotlin(九,阿里P7大牛亲自教你

| join() | 等待协程执行完毕 || cancel() | 取消一个协程 |协程的启动public fun CoroutineScope.launch( context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = CoroutineStart.DEFAULT, block: suspend CoroutineScope.() -> Unit): Job{ val new

2021-09-05 22:20:58 133

原创 kotlin学习(5,三年Android开发

mutableListOf.add("cat")mutableListOf.remove("jack") ### kotlin中支持内容修改的列表叫做可变列表,可以使用mutableListOf函数。list还支持使用toList和toMutableList动态实现 只读列表和可变列表的相互转换//转换为只读列表val toList = mutableListOf.toList()### mutator函数:能修改可变列表的函数有一个统一的名字:mutator函数//能修改可.

2021-09-05 22:19:10 191

原创 【Android面试(1),阿里巴巴安卓面试题答案

类加载方案需要重启App后让ClassLoader重新加载新的类,为什么需要重启呢?这是因为类是无法被卸载的,要想重新加载新的类就需要重启App,因此采用类加载方案的热修复框架是不能即时生效的。各个热修复框架的实现细节差异:QQ空间的超级补丁和Nuwa是按照上面说的将补丁包放在Element数组的第一个元素得到优先加载。微信的Tinker将新旧APK做了diff,得到path.dex,再将patch.dex与手机中APK的classes.dex做合并,生成新的classes.dex,然后在运行

2021-09-03 22:02:07 820

原创 【android每日一问,帮你解决95%以上的问题

public static void loop() {…for (;;) { ... // This must be in a local variable, in case a UI event sets the logger Printer logging = me.mLogging; if (logging != null) { logging.println(">>>>> Dispatching to " + msg

2021-09-03 22:00:33 119

原创 【android每日一问,复习指南

截取部分源码:@NonNullGlide build(@NonNull Context context) {if (memoryCache == null) { memoryCache = new LruResourceCache(memorySizeCalculator.getMemoryCacheSize());}if (engine == null) { engine = new Engine( memoryCache, disk

2021-09-03 21:58:59 130

原创 《Android 工程师进阶,阿里P7大牛整理

如果你正在这条成长路上的朋友,晚醒不如早醒,这就是我想说的。千万别等到中年才发现自己没有建立好自己的护城河,这个时候才知道努力。在自己努力的阶段,不仅不努力反了选择了纵容自己,这才是危机的根源。而我们能做的就是:跳出舒适区,走在行业前端面试,是技术深度与广度的试金石每隔一段时间要出去面试一下。对于 Android 知识的掌握还是多浮于表面,对一些技术点只停留在“使用过”甚至是“听说过”的阶段,比如一些问题,String 的最大长度是多少,JVM 的底层原理,Android 中&n

2021-09-02 21:51:21 432 1

原创 “技术水平还不如应届生,你真在大厂待了7年,讲的太透彻了

1、深入理解Java泛型2、注解深入浅出3、并发编程4、数据传输与序列化5、Java虚拟机原理6、高效IO设计思想解读开源框架随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。知识要点:**1.

2021-09-02 21:46:29 438

原创 “我天天curd,怎么才能成长,5分钟搞定

“天天在那curd,能有啥出息”“你就是一个curd boy”“就你叫curder啊”“你不写代码,你只是代码的搬运工”上面几段话,程序员是不是经常听到或者看到。这几句话说明了什么?高度概括能力:用几个单词组合,就概括了多数程序员日常的工作情况。自嘲:自嘲有时是一种乐观的品质,用一种调侃的方式来看待自身情况。乐观:上面说了,自嘲是乐观表现之一,但这种乐观中带着些许无奈。所以说,程序员还是很可爱的一群人儿。除了“自嘲”外,我们是不是应该多想一想,是不是应该多分析一下原因,是不

2021-09-02 21:44:45 1142

原创 “我在阿里做了5年招聘,给Android求职者10条建议,隔壁都馋哭了

3.手里攥着Offer 来谈更高条件的候选人,一般不会被待见。如果单从薪酬上看,永远都有可能比当下更高薪的工作在等着自己,拿着 Offer 来谈条件的候选人往往会被认定稳定性存疑。收入不是不重要,但不应该是决定一个人是否加入一家公司的先决条件。特别是工作数年后还对薪酬非常纠结的话,可能压根就没有对自己和外部环境有一个清晰的认识。4.企业对外招聘的时候,大家都不要太在意招聘广告上的薪酬范围数值,这个数值往往并不是公司实际对这个岗位的定薪标准。确实,薪酬写的越高越能吸引人,但职位工作的内容和挑战,会因为薪资的

2021-09-02 21:43:03 63

原创 Android-技术的下半场,重磅消息

那么,对于工程师而言需要做什么才能存活呢?很简单,要么转行,要么提高。我相信,一个技术不错的工程师,不但无需焦虑,而且在这个时代,能够拥有稳定的职业生涯和丰厚的收入。Android技术的下半场要说下半场,我更愿意说是“Android技术的下半场”,随着这几年大量的工程师和公司投入研发,Android技术已经从最早的简单页面,到越来越复杂的交互,再到动态化、插件化等新技术和黑科技,这个领域的深度在不断加深。如果想成为优秀、不担心淘汰的工程师,绝不是一味跟风新技术,今天学Kotlin、明天学Flutter

2021-09-01 12:17:39 107

原创 Android-性能优化,轻松入门flutter

#####启动主题优化所谓的主题优化,就是应用程序在冷启动的时候(1~2阶段),设置启动窗口的主题因为现在 App 应用启动都会先进入一个闪屏页(LaunchActivity) 来展示应用信息默认情况下会出现白屏现象,系统默认会在启动应用程序的时候 启动空白窗口 ,直到 App 应用程序的入口 Activity 创建成功,视图绘制完毕系统默认会在启动应用程序的时候 启动空白窗口 ,直到 App 应用程序的入口 Activity 创建成功,视图绘制完毕系统默认会在启动应用程序的时候 启动空白窗口 ,直到

2021-09-01 12:16:07 106

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除