- 博客(603)
- 收藏
- 关注
原创 【建议收藏】2021年中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂
一眨眼又到年底了,每到这个时候,我们都会慢慢反思,这一年都做了什么?有什么进步?年初的计划都实现了吗?明年年初有跳槽的底气了吗?况且2020年我们经历了新冠疫情的洗礼,很多程序员都经历了失业,找工作的恐慌。导致今年的互联网环境太差,需要自己有足够的知识储备,才能够应对这凌冽的寒风。本文主要是整理了中高级Android需要会的(或者说面试被频繁问到的内容),主要作为参考大纲,之后会陆续更新每个详细部分,供大家参考,互相学习。一、计算机网络部分1.网页中输入url,到渲染整个界面的整个过程,以及中间用了
2020-12-23 17:01:54 2891 4
原创 2017-2020历年字节跳动Android面试真题解析(累计下载1082万次,持续更新中)
大家好!给大家介绍一下,这是我们持续更新整理的2017-2020字节跳动Android面试真题解析!早在2017年我们就建了第一个字节跳动的面试群给大家讨论面试的东西。期间累计有1825个群友分享了自己的Android面试真经,并提供了参考答案。这其中就有很多成员已经斩获今日头条、抖音等岗位的offer。当然也有很多成员面试虽然失败了,但也分享了很多失败的经验教训。在这里一并对他们表示感谢!...
2020-03-09 14:51:14 2030 2
原创 腾讯面试,面试官第一个问题是Int占多少字节,程序员不知所措
在一般的互联网公司的技术人员的面试中,大概会经历3到4轮的面试,差不多2-3轮的技术面,还有1轮的HR面试,有人面试题是有关“目标”,有的关于“方法”,有的关于“算法”,有的关于“基础”。在小编看来,面试是找工作的第一道难关,原本以为面试都会问很难的问题,如果是更好的公司,可能问的问题越难。但近日,一位程序员在面试腾讯的过程中,也遇到一位面试官问的一个基础的不能在基础的题,问题是Int占多...
2019-03-15 20:54:35 17781 34
原创 阿里腾讯Android开发十年,到中年危机就只剩下这套移动架构体系了!
蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员,可惜我错过了,我用这五年时间和很多程序员一样在困惑和迷茫中找不到出路!路其实一直都在那里,只是我们看不到而已!以前我一直被公司和技术牵着走,并不是自己在选择技术,而是不自觉地被推到了这个位置上。想...
2019-03-07 22:36:01 1667 1
原创 ASM插桩--多线程运行监测
最近需要优化App启动的时间,现有代码存在以下问题:线程未复用(使用new Thread\HandlerThread),创建线程数过多使用HandlerThread,使用后未销毁(Looper一直等待),占用内存提早start线程,却未使用部分业务方过早初始化业务代码(虽然是异步),影响启动时间由于存在上述问题,需要扫描App从冷启动开始到首页展示出来,中间执行的子线程和主线程执行的情况。需要监测的数据如下:创建的线程情况,包括数量和使用情况执行的runnable.run、AsyncT
2021-07-12 17:21:54 951 2
原创 想搞懂Jetpack架构可以不搞懂生命周期知识吗?
1. 前言Activity生命周期真是一个非常古老的话题,无论是10年前,还是当下。不管是面试还是工作,经常会遇到与Activity生命周期相关的问题。比如“按下返回键和Home键,生命周期方法调用顺序”、“A启动B,它们的生命周期方法调用顺序”。工作中,Jetpack Lifecycle、LiveData、ViewModel等组件都是建立在生命周期之上。在我研究Jetpack Lifecycle、LiveData、ViewModel源码时,我发现它们与组件的生命周期有很大的关系。它们能够自动感知组件的
2021-07-09 14:51:04 710
原创 Android 使用 DatePickerDialog 显示时间
效果如下:**老规矩最后有源码,步骤如下:调用 Calendar 类获取年月日**重点:在最后你会发现月份少了个 1,这是正常的,api 中说这个值原始值为 0,自己加个一就好了。2. 将年月日的值放入 DatePickerDialog 中源码如下:布局文件** <TextView android:id="@+id/time" android:layout_width="wrap_content" android:layout_
2021-07-04 21:16:42 932 2
原创 AndroidJetpack Livedata最详尽的使用场景分析
Livedata 概览LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力如果观察者(由 Observer 类表示)的生命周期处于 STARTED 或 RESUMED 状态,则 LiveData 会认为该观察者处于活跃状态。。LiveData 只会将更新通知给活跃的观察者。为观察 LiveData 对象而注册的非活跃观察者不会收到更改通知。您可以注册与实现 LifecycleOwner 接口的对象配对的观察者。有了这种关系,当相应的 Lifecyc
2021-06-22 09:55:07 545
原创 实战演练!二阶贝塞尔仿微信扔炸弹动画
前言新出来的微信炸屎动画很多人都玩过了,所以先仿照一个微信扔炸弹的动画,在后续有时间会做一个完整的,效果如下:具体实现其中最麻烦的就是绘制抛物线了,爆炸的效果只是播放了一个动画,另外微信貌似都是通过代码绘制的,可能不是动画,奈何没有人家那技术,只能找一张动画来凑合。二阶贝塞尔曲线抛物线在这里是通过二阶贝塞尔曲线来完成,所以先来了解下什么是二阶贝塞尔曲线,从下图中可以发现,二阶贝塞尔曲线有三个关键点,我们可以称作起点坐标、终点坐标,还有控制点。起点和终点坐标好理解,控制点可以理解成开始下降的转
2021-06-17 09:13:43 634 5
原创 在 Android 中使用生物识别
为了保护隐私和敏感数据,应用往往会增加用户登录功能。如果您的应用使用了传统的登录方式,那么它的授权过程可能类似如图 1 中所示: 用户输入用户名和密码,应用会根据输入的数据生成设备凭据,然后将其发送到远端服务器进行验证,通过验证后会返回给应用一个 userToken,随后应用便可使用该 token 去服务器查询受限的用户数据。无论是要求用户每次打开应用都需要登录,还是只要求在安装启动后进行仅此一次的登录,图 1 所示的流程都适用。△ 图 1: 未使用生物识别的授权流程然而,图 1 这种授权方式有一些弊
2021-06-09 21:13:14 621
原创 Handler机制与原理
为什么会出现内存泄漏问题呢?分析Handler使用是用来进行线程间通信的,所以新开启的线程是会持有Handler引用的,如果在Activity等中创建Handler,并且是非静态内部类的形式,就有可能造成内存泄漏非静态内部类是会隐式持有外部类的引用,所以当其他线程持有了该Handler,线程没有被销毁,则意味着Activity会一直被Handler持有引用而无法导致回收MessageQueue中如果存在未处理完的Message,Message的target也是对Activity等的持
2021-06-01 13:45:59 435 1
原创 Android Studio 自定义快捷键调用外部程序
工作效率还能再提升记得刚工作的时候,同事教了我一些做事的方式和方法,至今印象深刻,“当一件事情重复做三次,就要尝试开发一个工具提升去效率”、“当一个错误出现三次时,必须要设法解决它,因为它可能伴随整个软件的使用周期”。我后面工作中一直谨记,少做重复劳动,多做提升工作效率的事情,不能把一年的工作经验用五年。提升工作效率,除了开发新工具,另外学会使用 IDE 的快捷键也很重要,很多人忽略了这一点。快捷键,学习一次,后面次次受益,使用过快捷键的朋友,肯定知道快捷键的效率远高于鼠标点击,还有一点是,敲击键盘明
2021-05-20 16:30:31 397
原创 NestedScrollView嵌套滑动源码解读
1、前言滑动对于android来说,是一个必不可少;它不复杂,大家都知道在onTouchEvent中,让它滑动就完事了,说它复杂,其嵌套处理复杂;在本系列文章,最终是为了熟悉嵌套滑动机制;对于滑动,分为下面几篇文章来完成解读:滑动基础ScrollView滑动源码解读NestedScrollView嵌套滑动源码解读CoordinatorLayout-AppBarLayout-CollapsingToolbarLayout复杂滑动逻辑源码解读在本章内,本章从两个嵌套的两个视角来分析子滑动视图
2021-05-19 22:16:00 538
原创 Jetpack Compose 自定义布局以及固有特性测量
这篇文章我们会讲解下,Compose中如何去自定义布局,以及Intrinsic Measurement(官方翻译为固有特性测量)的理解跟使用。一:自定义布局自定义布局可以通过两种方式去处理,一种是使用布局修饰符Modifier.layout,一种是使用Layout去创建自定义布局。我们先来讲下Modifier.layout的方式1.1 使用布局修饰符来实现自定义布局我们自定义一个Modifier的扩展函数,Modifier.customCornerPosLayout。该方法的作用就是可以按我们传入的
2021-05-18 11:09:51 637 1
原创 android高级UI布局层次结构及布局加载流程源码解析
我们写的布局位于DecorView中,DecorView是PhoneWindow的成员变量,而PhoneWindow又是Activity的成员变量,我们称这为布局的层级结构,下面我们从源码出发看看是如何形成的;一、布局层次结构分析1、setContentView分析当调用到我们的Activity的onCreate生命周期方法中后,接着会调用setContentView方法将我们传入的布局显示在界面上,那么这一过程如何实现呢?相关方法调用如下所示。setContentView方法会调用父类Activi
2021-05-15 17:40:01 780 1
原创 一篇文章带你入门音视频
一、概述1)流媒体协议是服务器与客户端之间通信遵循的规定。当前网络上主要的流媒体协议如表所示。2)封装格式的主要作用是把视频码流和音频码流按照一定的格式存储在一个文件中。3)视频编码的主要作用是将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。如果视频不经过压缩编码的话,体积通常是非常大的,一部电影可能就要上百G的空间。视频编码是视音频技术中最重要的技术之一。视频码流的数据量占了视音频总数据量的绝大部分。高效率的视频编码在同等的码率下,可以获得更高的视频质量。4)音频编码的主
2021-05-13 15:15:15 354 2
原创 研究Android音视频-3-在Android设备上采集音视频并使用MediaCodec编码为H.264
本文解决的问题本文主要使用MediaCodec硬编码器对Android设备采集的音视频编码封装音视频基础编码器封装音频编码器封装视频编码器使用新封装的视频编码器改造示例2使用Camera进行视频录制(YUV420SP)并保存为视频流(H.264)使用AudioRecord进行音频录制(PCM)并保存为音频流(AAC)使用MediaMuxer混合器合并视频和音频为一路流(H.264)(待完成)示例链接一、封装音视频基础编码器定义编码接口类ICodec:interface IC.
2021-05-10 21:03:08 607
原创 做Android开发,如何使用 Kotlin 提高生产力!
Kotlin 以其简洁的特性而闻名,而在我们的实践中,更加简洁就意味着更加高效。事实上,在使用 Kotlin 的专业 Android 开发者中,有多达 67% 的人表示 Kotlin 已经帮助他们提升了生产力。在接下来的内容中,我会分享一些 Kotlin 帮助我们的合作伙伴工程师们提高生产力的方式,并为您介绍有助于此的 Kotlin 功能。在使用 Kotlin 的专业 Android 开发者中,有多达 67% 的人表示 Kotlin 已经帮助他们提升了生产力简洁、简单且高效Kotlin 的简洁性对开发
2021-05-07 14:38:14 324
原创 Android组件化和插件化开发
项目发展到一定程度,就必须进行模块的拆分。模块化是一种指导理念,其核心思想就是分而治之、降低耦合。而在 Android 工程实践,目前有两种途径,一个是组件化,一个是插件化。组件化开发说起组件化少不了提起AS模块化的概念,其实两种方式的本质思想是一样的,都是为了代码重用和业务解耦。模块化模块(Module),Android Studio提出的概念,它是根据不同关注点将原项目中共享的部分或业务抽取出来形成独立module,这就类似我们集成的第三方库的SDK。 Module包含两种格式: applica
2021-04-22 13:37:39 444 1
原创 梦想照进现实!记录一下我的头条Android面试心路历程(非985/211)
开篇先讲一下我的职业生涯哈,不想看的可以直接到最后一段。我是普通二本出身,一直飘在北京,先是做web网站开发,后转到了Android移动端,也没有什么好运气,就靠一点小机智,得过且过混到16年初,靠着移动互联网大浪把我推到了一家二线互联网企业,在这里才算真正重构了自己,感谢当时遇到的同事,以及有可以和公司一起成长的机会,先后经历了完整的插件化和RN重度封装,知道了虚拟机和Android源码的重要,并开始积累。18年初,由于公司内部重大调整,动荡不安,再加上自觉jvm和framework很溜了,于是开始看
2021-04-21 15:38:06 374
原创 测试应用启动性能
用于测试启动的 Shell 命令本文的编写目的,更多的在于介绍性能、启动测试以及我进行启动测试背后的原因。但如果您只是希望能够快速获得结论,可以直接参考下面的内容:尽可能锁定 CPU 主频 (请参阅下文);在命令行运行如下命令 (保证您的设备处于连接状态)。$ for i in `seq 1 100`> do > adb shell am force-stop com.android.samples.mytest> sleep 1> adb shell
2021-04-19 14:25:36 305
原创 客2消,客1消,客0消...脉脉劝退客户端多次的你们究竟是何用意?
经常逛逛脉脉职言平台,作为一名Android开发者,难免会更多的关注行业动态。脉脉职言充斥着:“客户端内卷,客户端3年内消失、客户端2年内消失、客户端1年内消失,客户端已消失。”言论。最近看到很多客户端要消失的言论,整体感觉就是贩卖焦虑。不过,客户端在走下坡路确实是真的。目前客户端存在的原因在于跨平台性能不够好,但差距在缩减。客户端工作三年和工作五年十年的差距,大多数都在深度广度上,源码了解更深,解决的bug多一些,但工作三年开发的 app 已经够用。现在贩卖焦虑也是好事,能提前有危机意识。
2021-04-14 15:33:57 3742 10
原创 在外包公司从Java后端干到安卓开发,你醒醒吧!
这是一位网友和我分享的他的经历:由于他的学历远达不到BAT的要求,大专毕业的他在找工作的时候发现留给自己的机会并不多,最后去了一家不知名的小公司。他告诉我入职后才发现这家公司其实是个外包公司,里面的业务部门和制度相当混乱,负责招聘的HR同时兼管着财务和员工薪资的发放。老板凭人脉从外面接一些项目回来给他们做。吴瑞初出校门没有经验,只能硬着头皮做下去,可他越做越窝心。先是工作内容的问题。当初他应聘的岗位是后端开发,可现实却是他既要写后端,也要写客户端。本着做的多做的广可以学到更多的原则,他并不是非常在
2021-04-13 17:05:03 2670 1
原创 RecyclerView 是 “何方神圣“?为什么选择它呢?
RecyclerView 是一款非常强大的 widget,它可以帮助您灵活地显示列表数据。当我开始学习 RecyclerView 的时候,我发现对于复杂的列表界面有很多资源可以参考,但是对于简单的列表展现就鲜有可参考的资源了。虽然 RecyclerView 的组成结构乍一看有些复杂,但是深入理解以后您会发现它其实非常简单明了。本文会通过创建一个简单的 RecyclerView 实现一个列表来显示不同种类的花的名字。在实现的过程中,我也会将 RecyclerView 的每个部分揉碎了展现给大家,这
2021-04-11 21:59:09 314
原创 好难过!八年深漂,搞Android开发要价50万,面了六家公司,竟一个offer都没拿到!
最近逛脉脉职言,看到最多的就是客户端两年内消失。Android开发找不到工作。这段时间从北上广深杭不断传来一两个月找不到工作的消息,我一个从杭州去上海的朋友也是一周多了才拿到一只手都能数过来的面试机会。加上近来前端开发火爆,很多公司采用React Native来开发应用,还有微信小程序的出现,让一些同学对Android开发感到迷茫了。综上两点有感而发写一些自己的思考和总结。想达到大厂标准先要搭建知识框架我们在学技术的时候,如果没有注重搭建知识框架的话,学到后期的话你就会遇到一个问题,就是会感觉到自己
2021-03-29 11:11:59 443
原创 从面试无人问津到手拿百度offer,还原一段野生程序员的成长经历
野生程序员的成长经历本人是山东普通一本学历,机电专业,15年转行做的andorid开发。作为一个野生程序员,成长历程比较坎坷,开始靠培训机构或者个人自学,初级时就能入职互联网开发,非常困难,初级入职阶段,就能淘汰一大批培训机构的同学,很幸运自己能实现转变,很感激帮助我的同学和第一家时经理收留信任。靠着自己2年多的不断的学习和积累,从一个小白白成长为一个合格工具人,还完成个人薪资翻倍的跳槽。在第二家公司,也慢慢的技术视野和深度的扩展,能从容应对开发和各种问题。由于公司没有涨薪制度,所以就有了跳槽的计划准备
2021-03-28 20:47:26 1453 9
原创 我曾经用了 3 天面试 7 家公司,拿到了4个offer!记录一段搞Android开发黄金五年...
初入职场<2013-2014>在去上海找工作之前,我加了很多技术交流群,问过里面参加工作的人,面试的常见问题,还请在里面关系不错的给我做了模拟面试。2013年6月,我从长沙到上海来的时候,面试的情况还算比较不错,用了 3 天面试 7 家公司,拿到了4个offer。我选择了一家小型公司,当是做语音助手App,那个时候的我就是一心想把做更多的事情,因为只有做了更多,自己成长才能快。所以每次负责人安排的任务,我都提前完成并且做完后还会主动找负责人领取更多的任务。当我每次遇到不会的时候我都会请
2021-03-27 15:43:59 712 1
原创 Android开发失业的第65天,面挂了8个Android开发的职位,面试官你究竟要怎样才认为我有能力?
最近在论坛看到这样一个帖子:[以下内容并不客观,更偏向于自己。希望大家友善发言,如果能够说一下自己的想法或者对于面试看法技巧之类的就更感谢了。]首先介绍一下自己的情况。最近一份工作是在一家小的创业公司,待了 3 年多,薪资一般吧。由于这几年公司也在转型。工作经历大概可以分为 3 个阶段。第一阶段是从进公司开始做 android app 开发,无论是外包或者公司的主力产品都做过。第二阶段是做 ROM 开发,由于公司规模不大,除了硬件和底层的东西外,基本上是一个人负责了整个 ROM 的修改
2021-03-25 10:48:18 406
原创 程序员在你的技术生涯里,大厂履历意味着什么?缺乏澄澈的思考,我并不认为你都明白了!
最近几天,有几个朋友想要投递大厂,于是找我帮忙 Review 简历。所以我顺便问了下他们,为什么想要投递大厂,反馈的大概出发点是:▼ 追求高薪资相对小厂而言,大厂的薪资水平会更高不少。具体数字区间就不细说了,但是大厂整体会大方很多,只要你能够通过面试,30%甚至更高的涨薪都有机会拿到,更何况,大厂的年终奖也不会被“无良”老板随意克扣。▼ 追求稳定去年整体大环境不行,很多公司裁员,尤其是不太盈利的中小厂,比如某团、某滴。而对于大厂而言,裁员的概率会小很多,毕竟裁员带来的收益远比不上因此带来的负面效应和
2021-03-17 09:44:00 1000 3
原创 Android组件化框架设计与实践
在目前移动互联网时代,每个 APP 就是流量入口,与过去 PC Web 浏览器时代不同的是,APP 的体验与迭代速度影响着用户的粘性,这同时也对从事移动开发人员提出更高要求,进而移动端框架也层出不穷。上图显示的是传统的服务端架构和客户端 App 架构对比。传统的服务端架构中最底下是一个 OS,一般是 Linux,最上面服务端的业务,而中间有非常多的层次可以在架构上,按照我们的意愿搭建中间的各个层次的衔接环节,使得架构具有足够的灵活性和扩展性。但是到了 App 就会面对一个完全不同的现状,App 的OS(
2021-03-12 11:39:37 499 3
原创 Android实现三角形气泡效果方式汇总
在开发过程中,我们可能会经常遇到这样的需求样式:这张图是截取京东消息通知的弹出框,我们可以看到右上方有个三角形的气泡效果,这只是其中一种,三角形的方向还可以是上、下、左、右。通过截图可以发现,气泡由正三角形和圆角长方形组成,于是可以通过组合来形成三角形气泡的效果,下面我们通过三种方式进行实现。实现方式: 1、通过.9图进行实现; 2、通过shape方式实现; 3、通过自定义view的方式实现;实现逻辑:1、通过.9图进行实现这种方式就不用说了吧,找你们UI小姐姐切一个.9图,使用即可,不过这种
2021-03-12 11:17:19 546
原创 程序员在主动要求涨工资这事上,千万不要学我!从我的第一份工资800开始说起
在主动要求涨工资这方面,不要学我,为什么?因为在我工作的十几年里,我从来都没有主动要求过涨工资。这不是优点,这并不对!先说说我的经历,工作这么久,待过很多公司,我在涨工资方面一直很被动。经历一我第一家公司在北京,是一个非常小的公司,算上我程序员就 4 个人,靠给客户做一些小软件项目为生。小公司工资开的也很低,说出来你们可能不信,我刚去的时候工资只有 800 块钱。工资 800?程序员?在北京?没写错,就是 800,就是 2002 年,我来北京之后第一份工资。那时候我们大学一起毕业的几个同学,
2021-03-11 22:06:15 629 3
原创 2年前我从华为外包辞职,如今干到创业公司倒闭,36岁的我该何去何从?
大厂梦36岁生日这天,我失业了。前年,我从华为外包辞职,去了一家深圳一家创业公司。公司主营项目是借贷app开发。本想着能撑两年,结果一年不到,国家管控金融,资金链断裂,公司倒闭。记得去创业公司时,我的朋友觉得这个选择有风险,外包更加稳定,“基本跟事业单位一样。”但也是源于稳定,让我感到了不安。来华为外包前,我同样在一家小型科技公司做了6年。和大部分频繁跳槽的程序员相比,我其实还算是“定力很强”。小公司团队氛围好,工资待遇也不差,但技术焦虑一直裹挟着我。六年里,他写代码全靠网上自学,缺少技术交流氛
2021-03-10 14:29:37 7749 19
原创 ARouter 源码解析:阿里推出的路由框架
ARouter 是阿里推出的一款页面路由框架。由于项目中采用了组件化架构进行开发,通过 ARouter 实现了页面的跳转,之前看它的源码时忘了写笔记,因此今天来重新对它的源码进行一次分析。本篇源码解析基于 ARouter 1.2.4初始化ARouter 在使用前需要通过调用 Arouter.init 方法并传入 Application 进行初始化:/** * Init, it must be call before used router. */pu
2021-03-09 17:33:34 450
原创 字节码插件平台 ByteX 源码解析
写这篇文章的目的有三个原因,首先在 ByteX 的交流群里有同学反馈源码不易阅读,看起来比较费力,所以希望通过自己的理解和梳理能够帮助大家学习 ByteX 的源码。其次,有同学在阅读我的博客 AOP 利器 ASM 基础入门 之后反馈,不知道如何在工作中发现 ASM 的使用场景,所以希望借助 ByteX 的插件能给大家一些应用场景的启发。最后是作为个人学习 ASM 的一个总结。1. ByteX 介绍ByteX 是一个基于 Gradle Transform API 和 ASM 的字节码插件平台。通过平台化的
2021-03-08 17:54:46 2353
原创 Google大佬自述:天才程序员竟也有不为人知的秘密,看完真的学到了!
缘起最近在YouTube里看了一条谷歌大佬的公开演讲,题目叫做The Myth of the Genius Programmer,翻译过来就是天才程序员的秘密。这篇演讲是两位在谷歌subversion team工作的技术大佬Fitz和Ben在2009年Google IO上进行的,他们两人在谷歌内部被公认为顶级的天才级程序员。于是他们基于此做出了分享,这篇视频给了我很多启发。我后来在B站里找到了克隆版本,但是很遗憾的是,这个视频由于知名度比较低,所以现在只有生肉。对于英语不好的同学来说可能看起来会比较吃力
2021-03-06 10:04:06 2145 11
原创 面向Android开发者的Dart学习教程
前言上周六,吃错了东西,突然头晕,发烧,半夜突然呕吐,拉肚子,整个人被折腾得够呛的。到医院检查,说是 xx 肠炎,吃错东西导致的,整整躺在家休息四天。今天,终于缓过来了。更新一下 Android 启动优化有向无环图系列的最后一篇文章。最近一段时间,暂时不会更新这方面的文章了。系列文章汇总如下:Android 启动优化(一) - 有向无环图Android 启动优化(二) - 拓扑排序的原理以及解题思路Android 启动优化(三) - AnchorTask 使用说明Android 启动优化(四)
2021-03-04 16:25:34 316 1
原创 Android字节跳动一面,被面试官吊打
缘起最近看到很多准备春招的童靴,面试被各种吊打。除了提升专业技术水平外。程序员招聘校招相关的注意事项也是大家需要熟悉的。像下面这位同学,分享自己Android字节跳动一面,被面试官吊打!实习项目介绍;如何实现的;为什么使用反射;XML解析的方式;DOM和SAX解析的区别;注解的分类;ButterKnife实现原理MVP模型是怎么样的;如何实现的;P层是怎么实现的*为什么选用OkHttp库;拦截器链是如何实现的;自己实现的拦截器是用哪里的;是如何做DNS的;处于onResume的activity
2021-03-03 11:27:37 933 2
原创 一种有效管控APP隐私权限的解决方案
引言诸如读写外置存储、读取联系人、发短信等隐私权限,android在6.0系统开始进行动态授权。但在我国,仅向用户提示授权框还不够,工信部在19年11月初发布了专项整治App八类侵权行为审明 ,其文明确治理以下八类问题:1.私自收集个人信息;2.超范围收集个人信息;3.私自共享给第三方用户信息;4.强制用户使用定向推送功能;5.不给权限不让用;6.频繁申请权限;7.过度索取权限;8.为用户账号注销设置障碍。很不幸,网报通告批评:我司老版本APP中审明了隐私权限,但在隐私文档中并未进行有效
2021-03-02 17:58:34 2132
原创 八年老Android开发谈:垃圾中的战斗机,offer都发了,最后把我拒了
近日网上一则热帖引起了大家的广泛关注和讨论!故事背景是一个八年Android开发面试一家初创小公司leader岗位的经过。接下来我们看看主人公自述的面试经历。垃圾中的战斗机,offer都发了,最后把我拒了这是一家创业公司,坐标上海,类似货拉拉项目。面试是在现场面试,本人很幸运在笔试+面试都通过了,问的题目都不难,然后HR就来跟我谈工资,说我能否降低工资标准,我说不行就算了,我接别的OFFER,然后他说要我等他几天他去跟领导汇报,还说我这个薪资能谈下来的几率很大,但他自己没有权限批准要问上面的领导
2021-03-01 10:37:42 476 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人