
Android
文章平均质量分 89
程序员不秃
这个作者很懒,什么都没留下…
展开
-
抖音 Android 性能优化系列:启动优化实践
作者:字节跳动技术团队启动性能是 APP 使用体验的门面,启动过程耗时较长很可能使用户削减使用 APP 的兴趣,抖音通过对启动性能做劣化实验也验证了其对于业务指标有显著影响。抖音有数亿的日活,启动耗时几百毫秒的增长就可能带来成千上万用户的留存缩减,因此,启动性能的优化成为了抖音 Android 基础技术团队在体验优化方向上的重中之重。前言启动是指用户从点击 icon 到看到页面首帧的整个过程,启动优化的目标就是减少这一过程的耗时。启动过程比较复杂,在进程与线程维度,它涉及到多次跨进程的通信与.转载 2022-03-29 14:32:24 · 1370 阅读 · 0 评论 -
阿里三面真题,三面都离不开插件化的问题,真是太难了~
作者:考拉大厂难进,阿里作为众多程序员的圣地,进去更是难上加难。在这次面试之前,我根据阿里招聘的岗位要求投了很多其它公司类似的岗位进行面试积攒经验,像华捷艾米、信雅达、小米、美团等,有些被虐的很惨,也拿到了几个offer,犹豫了一下还是决定继续冲击阿里!可以看到阿里学历一般都要求本科、计算机相关专业;对底层原理的要求较高我自己总结了一下,能拿到这次offer原因主要有两点,一是多面试多总结,二是要想办法和面试官成为朋友。面试失败,好的面试官会指出你的不足,提出一些针对性的学习建议。这种面试.原创 2022-03-28 21:36:10 · 391 阅读 · 0 评论 -
ViewModel原理解析,人人都能看得懂~
作者:不说话的匹诺槽前言今天想跟大家聊的是Jetpack 组件之ViewModel , 之前对ViewModel 也是一知半解,只是从博客上大概了解过它的原理,自己并没有深入了解过,所以打算自己由浅入深的领略一下,本人自己感觉不算是聪明的那类人,连我都能看得懂,相信各位肯定没问题,人人都能看得懂!先来看看ViewModel是什么?ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。架构组件为界面控制器提供了.转载 2022-03-28 13:47:40 · 1069 阅读 · 0 评论 -
如何正确中断 一个线程?
作者:苏打水解渴如何正确中断 一个线程?1、通过线程提供的方法interrupt 通过调用此方法,系统就会给当前线程打上一个中断标记(true),默认为false,如果其他线程中调用当前线程中的此方法,表示告诉当前线程你可以停止了,当前线程也可以不理睬继续执行isInterrupted 判断当前线程是否被中断,根据当前线程中断标志位,做相关的处理Thread.interrupted() 判断线程是否被中断,此方法是个静态方法,跟isInterrupted 不同的是,在判断的之后会重.转载 2022-03-26 20:42:06 · 357 阅读 · 0 评论 -
同时面腾讯三个部门是种什么体验?好奇的斩获Offer~
作者:小黑读者在读小硕,先恭喜读者获得了腾讯的offer,下面看看都经历了什么。在2022年年初参加了腾讯的提前批实习生招聘,共被面试官从简历池里面捞了四次,当然第一次纯属偶然,是面试官看错我的面试岗位,本人投的技术运维岗位,但第一次面试官是Android开发岗,之后就是同时开始三个岗位的面试(疑惑还可以这样来),分别是一个Android开发岗,一个是云计算部门的技术运维岗,一个是云虚拟化部门的技术运维岗位,最后考虑了云虚拟化部门的技术运维岗位,并且获得了该部门的提前批Offer,接下来则是为大家.原创 2022-03-25 21:06:28 · 320 阅读 · 0 评论 -
Flutter 必知必会系列 —— 探索 Route 页面打开过程
作者:Time_sun路由操作的方式我们的路由操作基本分为三类:打开、关闭、替换。对应到 Navigator 的 API 就是 push、pop 和 replace。每一类又根据操作的方式分为:直接 和 间接,直接的方式就是直接操作 Route,间接的方式就是通过名字来操作 Route。整体的 API 方法如下:我们最常用的 API 可能就是 push 和 pop。 push 和 pop 是一对相反的操作,所以我们只跟踪 push 过程即可。添加路由我们常用的直接添加路由的方式如下:N.转载 2022-03-25 14:49:43 · 631 阅读 · 0 评论 -
Android 高工对自己过往面试的汇总总结~
1. 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?通过主界面进入,就是设置默认启动的activity。在manifest.xml文件的activity标签中,写以下代码 <intent- filter> <intent android:name=“android.intent.action.MAIN”> <intent android:name=”android:intent.category.LAUNCHER原创 2022-03-24 21:31:19 · 147 阅读 · 0 评论 -
图像存储策略:Packed与Planar
作者:满嘴跑火车的小土匪Packed与Planar在计算机图形学中,Packed和Packed是两种主要的像素数据存储方式。Packed:每个像素在内存中是连续存储的。如果每个像素有16bit,则每个像素在内存中是用两个连续的8位字节存储。如果每个像素有4bit,则每两个像素在内存中是用一个字节存储,每半个字节一个像素。如果一个像素有多个通道,则通道在内存中是相互交错的,如有三个通道的RGB:Planar:每个像素的组成,不是连续存储在一起的。而是分割在内存不同的位平面里。如果像素是单通道,也.转载 2022-03-24 14:27:14 · 1114 阅读 · 0 评论 -
OkHttp 断点上传的“基操”,真还有人不知道?
1、前言经常会有同学问:文件的断点上传如何实现?断点上传/下载,这是在客户端经常遇到的场景,当我们需要上传或下载一个大文件时,都会考虑使用断点续传的方式。断点上传相较于断点下载来说,最大的区别就在于断点位置的记录,上传记录在服务端,下载记录在客户端,因此,客户端需要在上传前,通过接口去拿到文件的断点位置,然后在上传时,将文件输入流跳转到断点位置2、准备工作对于文件上传,其实就是打开文件的输入流,不停的读取数据到byte数组中,随后写出到服务端;那客户端要做的就是跳过已经上传的部分,也就是原创 2021-07-19 16:33:52 · 231 阅读 · 2 评论 -
某 Android 大牛 “凡尔赛”:面大厂我一次过,直接拒掉了字节跳动 40K 的 offer
作者:恍然如梦前言这段时间稍微断更了一段时间,因为我在准备面试。经过两次面试后,有一些比较深刻的认识。对于大厂来说,除了对专业知识考究之外,对算法也尤为看重。简单的说一下情况,字节已经拿到offer,腾讯所有的面面试已经通过了,也应该有offer了。字节一共4面:3面技术,1面hr; 腾讯5次技术面,1次hr面。其中5面是2个面试官上阵。总的来说腾讯的面试确实强度更高更加持久。字节是分开一次1个小时面试的。而腾讯1、2面是一次一小时,而3面和4面是连续面试一口气高强度的面试2小时.原创 2021-07-09 20:52:30 · 494 阅读 · 2 评论 -
hook Toast,全网最强之 Android “沙雕”操作
一,背景这是个沙雕操作,原因是:在小米手机的部分机型上,弹Toast时会在吐司内容前面带上app名称,如下:此时产品经理发话了:为了统一风格,在小米手机上去掉Toast前的应用名。网上有以下解决方案,比如:先给toast的message设置为空,然后再设置需要提示的message,如下:Toast toast = Toast.makeText(context, “”, Toast.LENGTH_LONG);toast.setText(message);toast.show();原创 2021-07-09 15:28:59 · 637 阅读 · 2 评论 -
Webview 面试常见问题
Webview的使用需要申请权限,例如android.permission.INTERNET等。WebSettings webSettings = webView.getSettings();webView.setWebChromeClient(new WebChromeClient());webSettings.setJavaScriptEnabled(true)webSettings.setJavaScriptCanOpenWindowsAutomatically(true);we原创 2021-07-08 21:06:23 · 385 阅读 · 3 评论 -
深入理解AsyncTask的工作原理
一、为什么需要工作者线程我们知道,Android应用的主线程(UI 线程)肩负着绘制用户界面和及时响应用户操作的重任,为了避免“用户点击按钮后没反应”这样的糟糕用户体验,我们就要确保主线程时刻保持着较高的响应性。为了做到这一点,我们就要把耗时的任务移出主线程,那么耗时的任务交给谁来完成呢?答案就是工作者线程。Android开发中我们通常让主线程负责前台用户界面的绘制以及响应用户的操作,让工作者线程在后台执行一些比较耗时的任务。Android中的工作者线程主要有AsyncTask、IntentService原创 2021-04-16 15:55:13 · 262 阅读 · 0 评论 -
Android View双缓冲绘制下不符合逻辑的刷新机制
前言经常写自定义View的同学都会知道,当View发生改变时,想要主动的去刷新View,无外乎两个方法:主线程调用invalidate(),子线程调用postInvalidate()。调用上述两个方法后,系统会在合适的时候去刷新我们的View,即回调onDraw方法。带着这样的认知,我们默认会认为在排除其他干扰因素的情况时,只要不调用invaidate()系列方法,我们的自定义View只会保持上一次刷新时的样子。可是Android就总是会给我们带来惊喜(ㄒoㄒ),接下来的测试将会刷新你的认知。开始我们原创 2021-04-15 21:32:00 · 242 阅读 · 0 评论 -
仅有两年工作经验的我是如何成功面试阿里P6
最近在网上看到许多询问面试经验的问题,这次我在这里也分享一些关于我曾经的面试经验,希望可以给想要去阿里面试的同学们一些参考。说不定从中启发然后对参加阿里面试有所帮助。面试的所有流程大家都清楚,其中最重要的是简历,简历是给hr的第一印象,要吸引到hr才有面试的机会,同时对你要投岗的岗位进行有效的修改。这样子可以加大参加的面试的机率。简历我的简历只是简单的用MD做了一份,大致包含了以下几个部分:基本资料专业技能工作经历实习经历(可选)项目经历小提示:在基本资料里一定要填写正确的邮箱地址,原创 2021-04-15 17:38:11 · 373 阅读 · 0 评论 -
工作了几年的Android程序员的你,你还在迷茫吗
不久前我在朋友圈做了一个调查,**“工作1-3年的Android程序员,你对自身发展有哪些困惑?”**得到了五花八门的答案:“我在一家小公司做Android,工作2年了,感觉很迷茫,项目经验也不多,比较困惑该如何提高技术”“我是毕业就进了某大厂做Android开发,工作了1年多,感觉自己就像一颗螺丝钉,不知道未来在哪里”“我可能属于考虑得比较多的,虽然现在才工作2年,但都在考虑35岁以后干什么了,转管理?继续做技术?不是很清晰”“现在就想知道怎样赚更多的钱”总结归纳下来,我发现大家的问题大致原创 2021-03-19 17:30:17 · 2624 阅读 · 10 评论 -
“你们Android的程序员不就是敲点代码吗,凭啥工资这么高?“
程序员工资高这件事,不管你是不是当程序员,又或者你在不在互联网行业,你都可能了解这个事实。程序员这个行业,工资的确要比其他行业高很多。不过,肯定有人会问了,程序员的工资为啥会这么多,是正常的还是虚高?前一个问题我们下面慢慢分析,但是后一个问题的答案是显而易见的,程序员目前的工资一点也不虚高。程序员的工资的确很高根据程序员客栈所发布的《中国程序员生存状况报告》来看,年薪5w以下的程序员仅占6.2%,且年龄都在25岁以下,工作年限只有1-2年;大多数程序员年薪在9-30w,平均月薪达到10k以上,这相原创 2021-03-18 22:02:08 · 369 阅读 · 4 评论 -
ListView流畅度翻倍!Flutter卡顿分析和优化方案
最近因为在做Flutter中相关的性能优化,在收集很多性能数据之后发现ListView组件在一些场景下(例如加载更多)容易引起页面卡顿,看到了闲鱼的Flutter 高性能、多功能的全场景滚动容器。但奈何该组件没有开源,因此准备从文章给出的思路尝试研究和开发一个高性能的ListView。这个系列预计会分为4-5篇文章,前两篇主要对现有问题研究和分析,后三篇实际的进行开发。原理篇:1、Widget、Element、Render树究竟是如何形成的?2、ListView的构建过程与性能问题分析实战篇:1、原创 2021-03-18 21:10:42 · 3258 阅读 · 2 评论 -
Android程序员进阶为架构师的三个关键
架构师们总是跟我说,他们的利益相关者并不关心他们的架构。于是我问:你真的跟他们解释清楚你的架构了吗?我得到的答案是:一年前我和他们讨论过。因为架构的重要性,架构师们希望架构知识能自行传播。但问题是,这种自行传播并不会发生。也许是因为“重要的事情”经常被“紧急的事情”压倒,也许是因为架构本身存在一些复杂性。因此,进行恰到好处的架构沟通是架构师的一项任务,但这件事情却经常被忽略。1架构师应该花多少时间在沟通上这就提出了一个问题:架构师应该花多少时间在沟通上?Philippe Kruchten(一位著名的研究原创 2021-03-17 16:33:10 · 194 阅读 · 0 评论 -
Android程序员的未来真的是个死胡同吗?解决了这些问题后我并不觉得如此
面了几家公司,先和面试官说了一下之前的工作内容,擅长的领域,在了解过后,面试官便看着简历问:“做过高并发项目吗?你的系统可以支撑高并发吗?在高并发场景中,你会用到负载均衡中的哪几种分配方式?你认为百万流量的技术应该怎么选型?”听到这个问题之后就是一愣,怎么这家也问高并发?想了一些之前看过的一些高并发文章、资料,囫囵说了一遍。以前没接触过高并发,回答的毫无逻辑,根本不知道从何说起。待再回答后面的面试题时,没有刚开始那么自信,看面试官的态度就知道自己没戏了。处处需要高并发**“为什么Java面试必问高并发原创 2021-03-15 17:54:15 · 2852 阅读 · 15 评论 -
Android开发八年,面试50+公司经验总结:Android面试过程所需要掌握的技术
前言此文希望能给想跳槽的朋友一些参考。我们随着工作时间的增加和技术经验的积累。原先的公司不一定能继续提供给你想要的发展空间与前景。说直接点,家里还有老婆孩子还有老父母,我们需要更高的薪酬让他们过上更好的生活。所以跳槽是个不错的选择。去年年末的时候我就有了跳槽的想法。然后就是不断的跑了很多家公司面试。前后花了将近两个月时间。拿到了华为,美团,去哪儿以及一些不太出名的公司的offer。简历很重要首先是准备简历,然后就是过一下面试题。简历的编写其实这里可能需要注意几点:1.标题的直接按照姓名-几年原创 2021-03-15 14:02:57 · 429 阅读 · 1 评论 -
程序员被公司劝退,如果能有这些优势,占得越多,越安全!
在这个房价物价飞涨的年代,有一份稳定的工作比什么都重要,成年人的压力往往就是来自于‘金钱’房贷、车贷、生活中各种支出都靠着每月的工资才能生存下去,年龄越大这部分大压力也越来越大,因为有了家庭有了孩子,孩子每月的生活费、培训费都会让肩上的担子越来越重…一我的学弟,最近向我吐槽,2020 年上半年入职一家公司,当时是高薪挖走的他,所谓钱到位,工作也是充满干劲,不到一年的时间,参与了不少项目。可是疲于应对工作,填了不少的技术“坑”,根本没时间去提升。导致后期在完成公司给的工作时比较吃力,耽误项目的进程,原创 2021-03-14 20:38:49 · 1572 阅读 · 18 评论 -
新来的小师妹问我:哥,有哪些是新手程序员不知道的小技巧?
一个师妹问:哥,我今年应届毕业,刚开始写代码,不知道有没有一些新手需要注意的地方。给了师妹一些建议之后,感觉这是个好问题!不光是新手程序员,很多小技巧小秘密恐怕老手也未必掌握了。1.重视架构能力的培养对于新手程序员而言,最好的培养方式是:写代码前先画好类结构图和代码时序图,这样会让编码能力迅速进步。用什么工具画?Start uml就挺不错的。2.debug的能力远比编码能力更重要把功能实现只是程序员的第一步,甚至是最基础的一步,更多时候,你需要解决各种稀奇古怪的问题。这个能力不提升,不仅影响工原创 2021-03-10 21:35:17 · 341 阅读 · 2 评论 -
来自阿里P7的兄弟给我说:赶紧掌握这项技术太吃香了
提到Android开发程序员,很多人的第一反应都是:工资高!没错,也正因为如此,越来越多的人开始投入Android开发岗位。可能有些人不理解Android程序员为何薪资越来越高,认为自己看了些教程,读了几本书,了解一些Android相关的性能优化…捣鼓了几个小软件,就是一名不错的Android开发程序员了,计划着跳槽,觉得自己也能拿到月薪上万的工资。然后盲目的出去找工作,结果就是接连碰壁让这些人产生了自我怀疑,逐渐失去信心。所以在想好跳槽出去找工作之前,得认清自己的实力,得明白只有真正优秀的Andro原创 2021-03-08 21:12:20 · 673 阅读 · 13 评论 -
从程序员转行到家庭主‘夫‘
这个文章是一篇聊天整理稿,故事发生在上周末,参与者有老上司、四哥,我的朋友。事件主要就是他们喝酒,我吃菜,他们说着,我听着。朋友是干啥的他姓孔,咱们就叫他老孟吧,老孟 2010 年参加工作,大学就是学计算机的,毕业后对口程序员。工作第一年,Team Leader,工作第二年,项目经理,工作第三年,进入上市公司,职位虽然还是项目经理,但手下管理的人数翻了两倍,工作第四年,跳槽到一家创业公司,接下来一干就是 5 年。去年离职前,他年薪 30 W 上下。这些年他几乎做过任何开发语言编写的项目研原创 2021-03-07 21:16:00 · 233 阅读 · 0 评论 -
历时三个月:学渣的阿里之路
最近有些朋友在面试阿里,加上金三银四的到来,这让我想起年初那段长达三个月的奇葩面试经历。本来没想拿出来说的,毕竟最后也没成。但由于那几个月的经历让我了解到了大厂的工作方式、对候选同学的考察重点以及面试官的套路等都有了全新的认识。当然最重要的是这段时间的查漏补缺也让自己精进不少。先交代下背景吧:从去年 12 月到今年三月底,我前前后后面了阿里三个部门。其中两个部门通过了技术面试,还有一个跪在了三面。光看结果还不错,但整个流程堪称曲折。下面我会尽量描述流程以及大致的面试题目大纲,希望对想要跳槽、原创 2021-03-05 22:14:47 · 183 阅读 · 0 评论 -
原来,这才是30岁之前程序员该有的样子吗
2021年2月31日,凌晨2点30分,刚刚完成手头的工作任务。疲倦已经席卷了我,身体也抗拒我的大脑的指令。工位左手边洁白的瓷砖告诉了我我现在的状态:凌乱的头发,黄黑的眼圈,油腻的额头,以及微黑的嘴唇。这是这周第四次加班到凌晨两点后了,准备回家吧,回家还能好好的睡三四个小时,如果在公司趴着,胳膊一定会受不了的。拿起手机,打开微信,黑车小王、二狗、大刘、赵哥、老六早在11点多就发了微信,也对,毕竟我加班到这么晚,唯一的大概就是打车自由了(公司报销打车费)。最后还是选择了赵哥,他是开车最稳的一个,车上我总是能睡原创 2021-03-05 16:36:55 · 218 阅读 · 0 评论