- 博客(181)
- 收藏
- 关注
原创 简单好用的自定义Dialog(一)
上面介绍的DialogInterface接口,还提供了一系列的事件响应,这三个按钮均需要传递一个 DialogInterFace.OnClickListener接口对象,实现其点击事件的触发,在这个接口中需要实现一个 onClick(DialogInterface dialog,int which),dialog为当前触发事件的对话框对象接口,可以直接强制转换为AlterDialog进行操作;builder.setNeutralButton(“忽略”, new OnClickListener() {
2024-05-29 00:51:33
854
原创 程序性能优化之布局检测与优化(二)下篇
1)如果在叶节点或者ViewGroup中,只有极少的子节点,这可能反映出一个问题,应用可能在设备上运行并不慢,但是你需要指导为什么这个节点是红色的,可以借助Systrace或者Traceview工具,获取更多额外的信息;通过设置环境变量,export ANDROID_HVPROTO=ddm,我用小米note, 5.0系统的手机,发现并无效果,简书上有童鞋用Nexus的手机时可以正常使用呢的,目前暂未找到原因。2)如果一个视图组里面有许多的子节点,并且测量阶段呈现为红色,则需要观察下子节点的绘制情况;
2024-05-29 00:51:02
1026
原创 一致性hash
***/@Override@Override@Override@Override好,有什么问题呢,测试一下@Before@Test//用于检查数据分布情况i++) {count = 1;System.out.println(“初始化数据分布情况:” + countmap);// 正常情况下的去获取数据,命中率i++) {if (node!
2024-05-29 00:14:06
894
原创 Android IPC 通讯机制源码分析【下】
当Binder kernel接收到数据后,service_mananger线程的ThreadPool就会启动,service_manager查找到 CameraService服务后调用binder_send_reply,将返回的数据写入Binder kernel,Binder kernel。mHandle为0,BpBinder继续往下调用IPCThreadState:transact函数将数据发给与mHandle相关联的Service Manager Process。
2024-05-28 23:16:37
479
原创 设计模式之观察者模式
其实相当于一个监听,实时的监听你想要监听的内容。1.能够在某些页面设置完了后直接通知其他监听了这个事件的页面立即刷新,而不需要用户回到某些页面的时候再刷新。@Todo 全局的观察者监听,注册在application中,不用的时候一定要解除注册。注册监听,不需要的时候要取消监听,可在ondestory()中取消。@param action 需要传递的action要与注册的一样,2.能够区分是哪些事件通知的,从而针对不同的事件进行不同的处理。3.能够动态的扩展事件类型,可以让调用者很快的注册和监听事件。
2024-05-28 21:28:13
756
原创 设计模式 策略模式 以角色游戏为背景
写完之后,你自己似乎没有当初那么自信了,你发现代码中已经存在相当多重复的代码,需要考虑重新设计架构了。于是你想,要不把每个技能都写成接口,有什么技能的角色实现什么接口,简单一想,觉得这想法高大尚啊,但是实现起来会发现,接口并不能实现代码的复用,每个实现接口的类,还是必须写自己写实现。遵循设计的原则,找出应用中可能需要变化的部分,把它们独立出来,不要和那些不需要变化的代码混在一起。我们发现,对于每个角色的display,attack,defend,run都是有可能变化的,于是我们必须把这写独立出来。
2024-05-28 21:27:42
582
原创 征服Android面试官路漫漫(一):线程攻略,夯实基础很重要!
**@Overridereturn “谭嘉俊”;// 创建FutureTask对象// 创建线程try {// 等待任务执行完毕,并且得到返回值前面两种方式都没有返回值,FutureTask可以有返回值。
2024-05-28 20:54:21
575
原创 从LiveData迁移到Kotlin的 Flow,才发现是真的香!
如果用户离开应用太久,此时您不想让用户看到陈旧的数据,并且希望显示数据正在加载中,那么就应该在 WhileSubscribed 策略中使用 replayExpirationMillis 参数。然而,如果您需要观察其他的流,就应该使用 WhileSubscribed 来实现细微但又重要的优化工作,参见后文的解答。每当用户实例变化,或者是存储区 (repository) 中用户的数据发生变化时,上面代码中暴露出来的 StateFlow 都会收到相应的更新信息。不过,现在有了一个新的 API。
2024-05-28 20:25:05
650
原创 从0开始写一个基于Flutter的开源中国客户端(1)——Flutter简介及开发环境搭建 _ 掘金技术征文
这是Flutter中文网上对于Flutter的介绍:Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。
2024-05-28 20:24:34
640
原创 mac下下载安装Android Studio教程
首先来这个下载Android Studio,如果你是mac系统那个下载链接就是Mac。(img-FWx7SfMl-1716897212809)](img-6SQSqdop-1716897212809)]如果你不是mac,或者看不到这个地址,那么可以从这个地址下载。稍微等一下,不晓得再下载嘛东西,下完后看到主界面啦~下载完,拖到Aplications里就完成安装啦。俺选择木有要导入的,直接运行,看到如下进度条。运行会让你选择是否导入之前的设置,如下。安装完成后的图标是这样的。好吧,看下全局的结构~
2024-05-28 19:53:44
924
原创 Lifecycle+Retrofit+Room完美结合 领略架构之美
从使用说明分析,UserDao和Db一个是接口,一个是抽象类,这些逻辑的实现完全是由annotationProcessor依赖注入帮我们实现的, annotationProcessor其实就是开源的android-apt的官方替代品。同样基于ORM模式封装的数据库,比较有名还有_GreenDao_。个人理解Retrofit是高度抽象,且和业务耦合度很低的网络库,通过各种数据转化器或适配器,使得网络返回数据可以很奇妙的直接转化为我们想要的类型,与本地数据的缓存及持久化高度无缝对接,大大减少了开发投入。
2024-05-28 19:51:23
955
原创 Android系统架构与系统源码目录
在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器转换为机器码,这会拖慢应用的运行效率,而在ART 环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化,为了保护硬件厂商的知识产权,它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。应用层位于整个Android系统的最上层,开发者开发的应用程序以及系统内置的应用程序都是在应用层。
2024-05-28 19:16:27
786
原创 Android-Service-ANR-的监控机制
由上面的核心代码片段可以看出,最终Service的创建流程会由sys_server进程中的AMS,跨进程调用ApplicationThread,在App进程通过Handler发送消息的形式,执行handleCreateService(),调用Service.onCreate()后,再跨进程通知AMSserviceDoneExecuting()。AMS被调用到了serviceDoneExecuting() 方法后,会调用AS的serviceDoneExecutingLocked()。
2024-05-28 18:49:46
510
原创 Android-Framework学习笔记(六)应用程序进程启动过程
i < sz;= 0) {= null) {注释1处创建了字符串列表argsForZygote ,并将启动应用进程的启动参数保存在argsForZygote中,例如uid、gid等,这里需要注意processClass = android.app.ActivityThread,后文会用到。
2024-05-28 18:49:15
868
原创 2024预备BAT大厂Android研发岗秋招必问30+道高级面试题(附详细答案解析)
AIDL是使用bind机制来工作。java原生参数Stringparcelablelist & map 元素 需要支持AIDL/***/initView();@OverrideCycleView关键是canvas.drawCycle & paint.setsytle(stoken)
2024-05-28 18:21:38
521
原创 2024跳槽必备——Android从初阶到架构师面试复习大纲(含解题思路)
广播接收器没有用户界面。当服务是started状态时,其生命周期与启动它的组件无关,并且可以在后台无限期运行,即使启动服务的组件已经被销毁。Launch桌面的图标第一次启动Activity时,会最终走到ActivityThread的main方法,在main方法里面创建Looper和MessageQueue处理主线程的消息,然后Looper.loop()方法进入死循环,我们的Activity的生命周期都是通过Handler机制处理的,包括 onCreate、onResume等方法,下面是loop方法循环。
2024-05-28 18:21:07
952
原创 Android Retrofit 2
Retrofit 是一个 restful 的 HTTP 网络请求框架的封装。网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装App应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、Header、Url 等信息,之后由 OkHttp 完成后续的请求操作。
2024-05-26 16:03:07
312
原创 2024AndroidBATJ面试题设计模式&算法专题总结
23.求1000以内的水仙花数以及40亿以内的水仙花数24.5枚硬币,2正3反如何划分为两堆然后通过翻转让两堆中正面向上的硬8币和反面向上的硬币个数相同25.时针走一圈,时针分针重合几次26.N*N的方格纸,里面有多少个正方形27.x个苹果,一天只能吃一个、两个、或者三个,问多少天可以吃完?#(二)架构设计和设计模式单例模式(Singleton pattern)用于 Runtime,Calendar 和其他的一些类中。工厂模式(Factory pattern)被用于各种不可变的类如 Boolean,像 Bo
2024-05-26 00:07:15
263
原创 2024AndroidBAT-字节跳动74道高级面试第二篇
问题来了,当我们第一次GC的时候,我们可以把Eden区的存活对象放到Survivor A空间,但是第二次GC的时候,Survivor A空间的存活对象也需要再次用Copying算法,放到Survivor B空间上,而把刚刚的Survivor A空间和Eden空间清除。所以,GC的时候,其他所有的程序执行处于暂停状态,卡住了。但是,但是,但是,实际中并不是按照上面算法中说的1:1的比例来划分新生代的空间的,而是将新生代划分为一块较大的Eden空间和两块较小的Survivor空间,比例为8:1:1.。
2024-05-26 00:06:44
335
原创 Android 桌面组件【app widget】 进阶项目--心情记录器
通过为Intent 重新设置一个新的任务来打开Activity 此法即可启动一个Activity ,当然这种做法我是不建议的,因为重复了一个动作,具体怎么重复下文会具体告知大家。通过点击布局弹出一个Activity 的操作界面,之后在这个操作界面进行表情的选择和心情的保存,那么如何通过点击打开一个Activity 界面呢?下面是通过点击打开 Activity 操作界面的效果图,在这里有点不好意思啦,因为即兴画的很丑,大家就将就着看吧,主要是理解App widget 的写法。
2024-05-25 22:22:24
322
原创 Android Manifest
如果一个元素设置一个标签,但是一个活动和它的意图滤波器没有设置,这个应用程序的标签被当作是这个活动和意图滤波器的标签。例如元素有这三个属性,所以当用户被问及请求的应用程序是否授权,一个表示权限的图标,权限的名称,和一个描述它的细节都会被呈现给用户。对象),这些信息描述了一个请求动作——包括有用的数据,用来执行动作的组件的类别,和其他相关的指令。然而,一些包拥有它自己的库。每一个应用程序被链接到默认的安卓库,这个库包含创建应用程序的基本包(有公共类如:活动,服务,意图,视图,按钮,应用,内容提供者等等)。
2024-05-25 21:18:56
386
原创 Android MainActivity与IntentService所属Thread和Process
System.out.println(“UI主线程Id:” + Looper.getMainLooper().getThread().getId());
2024-05-25 21:18:25
409
原创 2024年金九银十最新Android面试题必问总结,让你在金九银十找到好工作(附Android面试题答案)_android面试题官2024
找工作难本质上是宏观、中观、微观的一系列因素作用的共同结果。。在这个大环境下,我。:准备面试的小伙伴,一定要根据自身情况制定好复习计划!并且,你最好还要时不时自测一下,对着一些面试常见的问题进行自问。这样查漏补缺,找到自己的问题所在。之后再着实从高频的面试题考试入手,因为高频的面试题被问答的概率远远大于其他面试题,以点入面,把这一个面试题涉及到的所有面试题(面试点)深入详细的搞懂。
2024-05-25 20:04:51
374
原创 2024年腾讯丶百度丶字节丶OPPO等Android面试大全,附带教你如何写好简历
这里的总结是在上一步思考的基础之上进行的,并不单单是把自己所学习过的知识点全部罗列出来就可以了。因为每个知识点在学习的过程中看似是独立的,实际上知识点之间大都是有关联的,我们要学会去思考并总结各个有关联的知识点,然后尽自己所能深挖出更多的知识点,使之串联,后面我会利用实际的面试题再来更加清楚的解释这一点。
2024-05-25 20:04:20
488
原创 2024年最全线程死锁分析思路,华为面试题难倒900考生的题
其实不然,在互联网的大浪淘沙之下,留下的永远是最优秀的,我们考虑的不是哪个行业差哪个行业难,就逃避掉这些,无论哪个行业,都会有他的问题,但是无论哪个行业都会有站在最顶端的那群人。只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。接下来还是按之前说的,如果系统存在日志,首先看这两个线程的日志信息和线程堆栈代码推测卡住原因,如果没有日志(大型系统一般都会存在系统日志),那只能gdb调试。
2024-05-17 07:18:29
744
原创 2024年最全简单的Android UI组件使用,2024年最新数据结构与算法面试题库及答案
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2021面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。还有高级架构技术进阶脑图、Android开发面试专题资料帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
2024-05-17 07:17:21
952
原创 2024年最全第一行代码读书笔记 Kotlin Android(1),安卓开发进大厂面试必备技能
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。知识不体系?
2024-05-17 07:16:45
740
原创 2024年最全Android自定义View,画一个好看带延长线的饼状图,全套教学资料
一共十个专题,包括了Android进阶所有学习资料,Android进阶视频,Flutter,java基础,kotlin,NDK模块,计算机网络,数据结构与算法,微信小程序,面试题解析,framework源码!这里需要注意的是:第一个扇形的起始角度为-90度,因为在自定义View中,0度是从右边开始的,也就是坐标轴中的X轴正方向那条线开始顺时针增加,而我们想让扇形从Y轴的上方这条线开始顺时针绘制,所以需要减90°。目前只画了点跟圈,后续还有延长线和文字,也就是饼图在View中占的空间会越来越小。
2024-05-16 18:32:29
260
原创 2024年最全Android自定义View实战---圆盘温度计,2024年最新面试官不讲武德
因为整个圆盘是270度,设置每3度画一刻度线,故要绘制90根,这里选择的是以圆盘正上方的刻度线为基准刻度,将其绘制好后,然后进行旋转绘制,这样绘制过程就Ok了。那么,怎么让我们的view动起来呢,有点动态感,对此,我们只要不断的改变扫描的度数就好,对此我设定了3个值,最低温度值(起始)、最高温度值(结束)、当前温度。我建议各位,多刷刷面试题,知道最新的技术,每三个月可以去面试一两家公司,因为你已经有不错的工作了,所以可以带着轻松的心态去面试,同时也可以增加面试的经验。参数意义这里就不说了,应该猜的出的。
2024-05-16 18:31:56
430
原创 2024年最全Android自定义view之太极图,2024年最新百度面试笔试题
学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!最后如何才能让我们在面试中对答如流呢?答案当然是平时在工作或者学习中多提升自身实力的啦,那如何才能正确的学习,有方向的学习呢?有没有免费资料可以借鉴?为此我整理了一份Android学习资料路线:这里是一部分我工作以来以及参与过的大大小小的面试收集总结出来的一套BAT大厂面试资料专题包,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家。
2024-05-16 18:31:22
364
原创 2024年最全Android 开发艺术探索笔记(22),2024年最新嵌入式工程师面试都问什么
学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。下方即为我手绘的Android框架体系架构知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的Android框架体系架构知识脑图原件(包括上方的面试解析xmind文档)
2024-05-16 15:29:35
390
原创 2024年最全Android 开发者计划近半年的跳槽,面试四家,斩获3家Offer(1),直播面试常见问题及回答技巧
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。下面分享的腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题全套解析,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,下面只是以图片的形式给大家展示一部分。知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
2024-05-16 15:29:02
294
原创 2024年最全Android 开发技术干货,字节跳动+京东+美团+腾讯面试总结
很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料如果你熟练掌握以下列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
2024-05-16 15:28:29
383
原创 2024年最全Android 开发应该掌握的 Proguard 技巧,2024年最新android系统工程师面试宝典
1.保留某个特定的类#保留Test类2.保留某个类的子类#保留继承了AbstractClass的子类3.保留接口的实现类#保留实现了Callable接口的类4.保留类的特定部分 保留TaskRepository类的所有构造方法,变量和普通方法。;//匹配所有构造器;//匹配所有域;//匹配所有方法还可以保留的更具体一点,如下所示// 保留该类的修饰符是public且有一个参数(类型是String)的构造方法。
2024-05-16 15:27:55
376
原创 2024年安卓最新安卓工程师跳槽经验分享,分享PDF高清版_学习经验分享pdf图片,2024年最新2024年Android岗位BAT大厂面试题知识点小结
简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。面试过程一定要有礼貌!
2024-05-16 10:08:17
323
原创 2024年安卓最新安卓工具类之app获取版本渠道信息工具类(2),2024年最新android 基础面试题
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。欢迎大家一起交流讨论啊~网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!/**
2024-05-16 10:07:44
392
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人