技术文
椰果学Android
【Android进阶学习视频】、【BTAJ大厂安卓面试真题】、【Android核心知识笔记PDF】,加Q群672020606免费获取!
展开
-
Android探索之旅 | 为应用添加角标
内容简介需求简介 Android角标起源 不错的Github项目 清除角标 小问题纠错 总结1.需求简介角标是什么意思呢?看下图即可明了:可以看到图中的乐购这个app右上角的红色的圆圈,里面有10这个数字的,就是一种角标。角标,英语是badge,也就是“徽章,像章,奖章; 象征,标记”的意思。一般来说,应用的角标是用来标记有多少条提醒(Notification)没读(unread),一旦点击提示进应用阅读了,角标也会消失。2. Android角标起源角标原本是原创 2020-11-12 15:31:24 · 717 阅读 · 0 评论 -
基于Kotlin实现一个简单的TCP自定义协议
一. 开发背景想要成为一名优秀的Android开发,你需要一份完备的 知识体系,在这里,让我们一起成长为自己所想的那样~。我们的项目需要开发一款智能硬件。它由 Web 后台发送指令到一款桌面端应用程序,再由桌面程序来控制不同的硬件设备实现业务上的操作。从 Web 后台到桌面端是通过一个 WebSocket 长链接来进行维护,而桌面程序到各个硬件设备也是一个 TCP 长链接来维护的。本文讲述的,其实是从桌面程序到各个硬件之间的通讯。二. 自定义通讯协议首先,需要设计一个通用的.原创 2020-11-10 10:50:18 · 1138 阅读 · 0 评论 -
牛逼!终于有人能把Android事件分发机制讲明白了
在Android开发中,事件分发机制是一块Android比较重要的知识体系,了解并熟悉整套的分发机制有助于更好的分析各种点击滑动失效问题,更好去扩展控件的事件功能和开发自定义控件,同时事件分发机制也是Android面试必问考点之一,如果你能把下面的一些事件分发图当场画出来肯定加分不少。废话不多说,总结一句:事件分发机制很重要。Android 事件分发流关于Android 事件分发机制网上的博文很多,但是很多都是写个Demo然后贴一下输出的Log或者拿源码分析,然后一堆的注释和说明,如果用心的去看肯定原创 2020-11-09 09:57:48 · 198 阅读 · 0 评论 -
Framework掌握不熟?字节跳动大牛带你系统化学习
面试中Framework与Binder的重要性Framework通常作为一个Android APP开发者,我们并不关心Android的源代码实现,不过随着Android开发者越来越多,企业在筛选Android程序员时越来越看中一个程序员对于Android底层的理解和思考,这里的底层主要就是Android Framewok中各个组件的运行原理,例如Binder的运行机制、ServiceManager的作用等等。在Android面试中,关于 Framework 的问题是必备的,但是这些关于字节跳动原创 2020-10-23 17:01:36 · 301 阅读 · 0 评论 -
Android开发Jetpack从入门到精通教程
前言即学即用Android Jetpack系列Blog的目的是通过学习Android Jetpack完成一个简单的Demo,本文是即学即用Android Jetpack系列Blog的第一篇。记得去年第一次参加谷歌开发者大会的时候,就被Navigation的图形导航界面给迷住了,一句卧槽就代表了小王的全部心情~,我们可以看一下来自网络的一张图片:所以,Android Jetpack学习之旅就开始了。本人打算每周学习一个组件(上图的左上区域),最后将所学的组件组成一个简单的D..原创 2020-10-17 15:13:24 · 1625 阅读 · 0 评论 -
阿里P8大佬带你真正理解一波Kotlin协程
1概述目录前言Kotlin协程,现在已经成为了面试甚至是工作中一个非常火的东西。本人在刚开始了解Kotlin协程的时候,断断续续看了网上不少文章,用长篇大论把Kotlin协程描述的非常玄乎,但是看完后还是依然云里雾里,所以决定来写一篇关于协程的文章,希望能够帮助大家能够更快的上手Kotlin协程.注意:如果没有特殊提及,文中所有“协程”均代表“Kotlin协程”2为什么要学习Kotlin协程?(官方版)现在Android技术栈上的新东西层出不穷,kotlin、jetpa.原创 2020-10-16 09:34:55 · 433 阅读 · 0 评论 -
字节跳动技术整理:一文秒懂Flutter跨平台演进及架构
一、移动跨平台技术演进1. 引言移动互联网发展十余年,伴随着 Android、iOS 等智能手机的不断普及,移动端已逐步取代 PC 端,成为兵家必争之地。正所谓“得移动端者得天下”,移动端已成为互联网领域最大的流量分发入口,一大批互联网公司正是在这大趋势下崛起。2. 为什么需要跨平台技术伴随着移动互联网的高速发展,公司间竞争越来越激烈,如何将好想法快速落地、快速试错,成为备受关注的问题。提升研发效率、缩短研发周期,保障产品快速试错并能快速迭代新功能,让新产品新功能以最快的速度同时抵达 And原创 2020-10-15 10:09:35 · 2120 阅读 · 0 评论 -
Android开发教程之NDK开发趟坑之旅
现在都说互联网寒冬,其实只要自身技术能力够强,咱们就不怕!我这边专门针对Android开发工程师整理了一套【Android进阶学习视频】、【全套Android面试秘籍】、【Android知识点PDF】。如有需要获取资料文档的朋友,可以点击我的GitHub免费获取!...原创 2020-10-13 14:49:12 · 156 阅读 · 0 评论 -
Android开发必备!性能优化系列:启动优化
现在都说互联网寒冬,其实只要自身技术能力够强,咱们就不怕!我这边专门针对Android开发工程师整理了一套【Android进阶学习视频】、【全套Android面试秘籍】、【Android知识点PDF】。如有需要获取资料文档的朋友,可以点击我的GitHub免费获取!...原创 2020-09-30 10:31:21 · 245 阅读 · 0 评论 -
2020年Android大厂面试必备:插件化、模块化、组件化、热修复、增量更新、Gradle
五、插件化、模块化、组件化、热修复、增量更新、Gradle1.对热修复和插件化的理解2.插件化原理分析3.模块化实现(好处,原因)4.热修复、插件化5.项目组件化的理解6.描述请点击 Android Studio 的 build 按钮后发生了什么参考答案:1.对热修复和插件化的理解Android 类加载器 PathClassLoader.java DexClassLoader.java BaseDexClassLoader.java DexPathList.java 复制代码(1)Pat原创 2020-09-11 15:33:41 · 474 阅读 · 0 评论 -
惊呆了!女儿拿着小天才电话手表,问我Android启动流程!
首先,new一个女儿,var mDdaughter = new 女儿(“6岁”,“漂亮可爱”,“健康乖巧”,“最喜欢玩小天才电话手表和她的爸爸”)好了,女儿有了,有一天,女儿问我:“爸爸爸爸,你说我玩的这个小天才电话手表怎么这么厉害,随便点一下这个小图片,这个应用就冒出来了,就可以听儿歌了。好神奇啊。”我心里一惊:小天才电话手表的系统就是Android,所以这不就是。。面试官常考的应用启动流程嘛!女儿也要来面试我了吗!好了,既然女儿问了,那就答吧。但是,对付这个小小的0经验面试官,我该咋说呢?原创 2020-09-09 15:28:20 · 3683 阅读 · 0 评论 -
从十分后悔到紧张应对金九银十的我全靠着这份资料
前言相信有些小伙伴是年前辞职,结果赶上了疫情,在家里一呆就是几个月!许多人都在家吃喝玩乐而荒废了自己的知识。而我也不例外。本来我已经对今年的面试不抱有任何的希望。但当我看到这份资料时,我在心中不经又产生了希望。让我从浪费时间的自责中开始变得紧张复习起来。这一份资料包含众多我今天就来简单的介绍一下。它包含了从基础到架构进阶,包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中高级安卓技术点。也正因为包含有这么多的要点所以我才希望可以让更多的原创 2020-08-28 22:24:46 · 461 阅读 · 0 评论 -
一篇能够帮你理清线程池的文章
近日,据消息人士透露称华为已召集两家韩国芯片制造商在华子公司的高级官员,要求后者稳定供应存储芯片。华为是三星和SK海力士的五个最大客户之一,每年花费约10万亿韩元(合81亿美元)从韩国公司购买DRAM和NAND闪存芯片。/ 什么是线程池 /线程池,顾名思义就是装线程的池子。其用途是为了帮我们重复管理线程,避免创建大量的线程增加开销,提高响应速度。/ 为什么要用线程池 /作为一个严谨的攻城狮,不会希望别人看到我们的代码就开始吐槽,new Thread().start()会让代码看起来混乱臃肿,并且不转载 2020-08-26 20:27:56 · 143 阅读 · 0 评论 -
Jetpack家族新成员,App Startup学习笔记。这些你又懂了吗?
近日,南昌市人民政府与新电商平台拼多多签订战略框架协议,共同启动“南昌优品”电商直播消费节、“南昌优品馆”线上大型展销专场等系列活动。/ 解决的问题 /一般需要初始化的sdk都会对外提供一个初始化方法供外界调用,如:public class App extends Application { @Override public void onCreate() { super.onCreate(); Sdk1.init(this); }}对调转载 2020-08-25 14:53:22 · 179 阅读 · 0 评论 -
解密 RxJava 的异常处理机制,你又懂了多少呢?
1、前言今天通过这篇文章你将学习到以下内容,将在译者思考部分会给出相应的答案just 和 fromCallable 区别?什么是 RxJavaPlugins.setErrorHandler?Crashes 发生在 just() 中的处理方案?Crashes 发生在 subscribe success 中的处理方案?Crashes 发生在 subscribe error 中的处理方案?Crashes 发生在 complete 中的处理方案?Crashes 发生在 complete 之前的处理方原创 2020-08-24 16:49:49 · 404 阅读 · 0 评论 -
Android UI 渲染机制的演进,你需要了解什么?
前言如今UI 渲染可能是诸多性能问题中最容易被察觉到的,Android 开发既要面对各式各样的手机屏幕尺寸和分辨率,还要与“凶残”的产品和 UI 设计师过招。在正确实现复杂、炫酷的 UI 设计的同时,还需要保证流程的用户体验。更加不幸的是,最近几年这个趋势似乎愈演愈烈:刘海屏、水滴屏、全面屏,还有即将推出的的柔性折叠屏,UI 适配将变得越来越复杂。UI 渲染的背景知识Android 的图形渲染框架十分复杂,不同版本的差异也比较大。但是无论怎么样,它们最终都是为了将我们代码中的 View 或者元素显示转载 2020-08-22 21:47:49 · 404 阅读 · 0 评论 -
Fragment 间通信的新方式,这些你是否又懂了呢?
1、概述就在 2020/05/07 号 Now in Android #17 更新了,发布 Android 的新特性,其中就包括 Fragment 间通信的新方式,而现在就由我来介绍介绍。今天你们将会了解到以下内容,并得到答案。一、新 Fragment 间通信的方式的使用?二、新 Fragment 间通信的源码分析?三、汇总 Fragment 之间的通信的方式?2、在 Fragment 之间传递数据Fragment 间传递数据可以通过多种方式,包括使用一、target Fragment AP.转载 2020-08-21 11:11:03 · 355 阅读 · 0 评论 -
你对于LiveData真的了解吗?看完原理立马释怀!
最近一段时间,继美媒曝出TikTok美国员工计划起诉特朗普政府之后,根据美国《国会山报》最新消息,TikTok美国员工已准备好向总统特朗普针对TikTok颁布的禁令发起法律挑战。根据其代理律师方面的说法,他们将于本周晚些时候向联邦法院提起诉讼。/ 前言 /LiveData是Jetpack的基础组件之一,在很多模块中都可以看到其身影。LiveData可以和生命周期绑定,当Lifecycle(例如Activity、Fragment等)处于活跃状态时才进行数据回调,并在Lifecycle处于无效状态(DES.原创 2020-08-20 15:15:11 · 807 阅读 · 0 评论 -
当一个项目创建了几百个线程,你又要去怎么优化呢?
近日,据报道,甲骨文已经与TikTok的中国所有者字节跳动进行了初步谈判,并认真考虑购买该应用在美国、加拿大、澳大利亚和新西兰的业务。知情人士还补充称,甲骨文正在与一群已经持有字节跳动股票的美国投资者合作,包括美国泛大西洋投资集团和红杉资本。1、前言当大家打开AndroidStudio的Profiler工具时,是否遇到过这种情况:哇塞好几百个线程??名字咋都是12345?怎么都在sleep或wait但就不销毁?其实,当一个项目规模越来越大时,随着开发人员变更、老代码不规范、三方sdk引入越来越多,转载 2020-08-19 20:10:24 · 569 阅读 · 0 评论 -
Android11的到来,你如今被OUT了吗?
1、前言*最近看到一条新闻,Android 11(version 30,Andorid R)最终Beta版 如期发布,看到这个新闻我知道我不能再拖了,再不好好准备好迎接Android11的到来,到时候迎接我的就是客户的指责,甚至老板的一封休书了 ????。今天就和大家一起看看Android11到底改了些什么,以及最重要的,我们需要怎么适配?targetversion不改到30,是不是就不用适配了呢?以下我分为两部分讲述,分别是以Adnroid11 为目标版本的应用(targetSdkVersion&原创 2020-08-18 21:04:50 · 384 阅读 · 0 评论 -
程序员必懂小技巧之Parcelable
本篇文章的目的,将分析Parcelable实现原理,一者可以明白其实现;二者可以更好地与Serializable进行比较;三者对于序列化所要到达的目的考量也会有较清晰的认识。本文将会回答以下问题,如果你不知道答案,或许有些帮助:Parcelable 如何实现为什么序列化与反序列化要保持相同的顺序能否自行实现Parcel子类是否需要实现ParcelableParcelable 真的比 Serializable 快吗原创 2020-08-18 14:23:04 · 668 阅读 · 0 评论 -
如果App运行时大图监控,你又应该怎么做呢?
1、背景最近看滴滴开源的Dokit框架中有一个大图监控的功能,可以对图片的文件大小和所占用的内存大小设置一个阈值,当图片超过该值的时候进行提示。这个功能对于我们在做APK体积压缩,内存管理的时候还是很有用的,比如当我们要从后台返回的连接中加载一张图片,这张图片的大小我们是不知道的,虽然现在大家都使用Glide等三方 图片加载框架,框架会自动对图片进行压缩,但是依然会出现压缩后所占内存超过预期的情况。这时候我们可以在开发、测试和预生产阶段使用大图监控来识别出那些超标的图片。2、需求在讨论如何做之前,转载 2020-08-17 19:38:16 · 461 阅读 · 0 评论 -
程序员必懂Android技巧之Lifecycle源码
巴西副总统莫朗当地时间3日在一个视频会议上表示,巴西不担心美方的威胁和施压,不会阻止华为参与该国的5G建设竞标,华为公司掌握的技术远超其它竞争对手。/ 前言 /Lifecycle 是 Jetpack 整个家族体系内最为基础的内容之一,正是因为有了 Lifecycle 的存在,使得如今开发者搭建依赖于生命周期变化的业务逻辑变得简单且高效了许多,且大大减少了业务代码发生内存泄漏和 NPE 的风险。本文的内容就是对 Lifecycle 进行了一次全面的源码讲解,希望对你有所帮助!本文所讲的的源代码基原创 2020-08-15 21:08:29 · 395 阅读 · 0 评论 -
LiveData vs EventBus?是否可以实现共赢
近日,据国外媒体报道,电动汽车厂商特斯拉的股价本周一再次大涨,延续上周4个交易日连续大涨的势头,CEO埃隆·马斯克的身价也因此而增至463亿美元,比马云和拼多多创始人黄峥均高出了31亿美元。/ 前言 /EventBus大家都很熟悉了,各种实现方式也是层出不穷,然而,作为有追求的程序员们,永远在不停的造轮子,毕竟,在程序员的眼中,至今,没有哪个轮子看上去是完美无暇的。因此,作为有追求的程序员中的一员,我也想假装很权威的站出来,然后无所畏惧的从远古时期讲讲事件总线的来龙去脉。有兴趣的小伙伴可以搬个转载 2020-08-14 16:14:52 · 314 阅读 · 0 评论