- 博客(57)
- 收藏
- 关注
原创 2024金九银十及秋招后,Android程序员职业规划,没想到它是黑马!(系列篇)
(一)android初级程序员**总结:**能干活,有学习能力,能跟着团队成员做项目;技能: 基础的组件的使用,熟悉Java基本的语法,Gson,xml数据解析,第三方框架的使用,熟悉android的常用API,熟悉网络框架或者API的使用,掌握数据库相关知识点,熟悉android的四大组件、生命周期,熟练掌握界面布局,了解android项目目录的组织架构等等;要求: 初级程序员一般都是从电脑小白成长起来的,当然了也有可能是web或者是其他方面的大牛转换过来的,想要成为一个高逼格的初级android程序员需
2024-05-29 11:34:49
492
原创 2024金九银十Android大厂面试题来袭!不来刷一下吗?(猿辅导+斗鱼+滴滴
2.编译期注解处理的是字节码还是java文件3.你在项目中有用到什么设计模式吗?4.ARouter的原理是怎样的?5.插件化的原理是怎样的?6.算法题,K个一组反转链表7.广播与RxBus的区别,全局广播与局部广播区别。
2024-05-29 11:34:18
374
原创 2024跳槽必备——Android从初阶到架构师面试复习大纲(含解题思路)
广播接收器没有用户界面。当服务是started状态时,其生命周期与启动它的组件无关,并且可以在后台无限期运行,即使启动服务的组件已经被销毁。Launch桌面的图标第一次启动Activity时,会最终走到ActivityThread的main方法,在main方法里面创建Looper和MessageQueue处理主线程的消息,然后Looper.loop()方法进入死循环,我们的Activity的生命周期都是通过Handler机制处理的,包括 onCreate、onResume等方法,下面是loop方法循环。
2024-05-29 11:33:46
788
原创 10天学会kotlin DAY5 初始化块
/ 这样会直接造成info 返回的是一个null ,因为在进入 init 之后,直接调用的就是getInfoMethod()方法,这时候 成员变量 info 还没有进行初始化赋值。// 当你调用 主构造函数,传入info, 再执行成员变量,调用getInfoMethod() 函数,获取字符长度的时候,其实你获取的是null。// 在这里,看上去,代码没有任何问题,但是我们前面讲了,成员变量 number 和 init 是同级的。// 模拟数据库的加载,写一个定时器。
2024-05-29 11:05:33
216
原创 10天学会flutter DAY7 flutter 玩转基础Widget
// main方法 调用runApp传递Widget,这个Widget成为widget树的根。///当依赖的InheritedWidget rebuild,会触发此接口被调用。///父widget状态改变的时候会调用该方法,比如父节点调用了setState。this.disabledTextColor, //按钮禁用时的文字颜色。this.disabledColor,//按钮禁用时的背景颜色。///当State对象从树中被移除时,会调用此回调。this.padding, //按钮的填充。
2024-05-29 11:05:01
949
原创 10个最佳Android新闻应用模板
应用程序模板为开发人员提供一个设计精美的应用程序,让用户获得他们所有的新闻,包括直播电视,视频和照片,天气和在一个地方头条新闻。与此处的其他应用功能一样,用户可以使用他们的社交媒体帐户登录,根据他们喜欢的类别过滤新闻,分享和评论新闻项目等。我的新闻提供Facebook注册和登录,组织新闻报道的类别,推送通知,AdMob横幅和功能齐全的管理面板,允许应用程序的管理员管理用户帐户。是另一个模板,非常适合那些希望创建自己的新闻应用程序的人,让关注者,粉丝,客户和客户了解有关其活动或业务的新闻。
2024-05-29 11:04:00
724
原创 朋友,在准备大厂面试吗,内部技术了解一下
同时,作为平台方,我们需要考虑到各个业务团队的诉求,统筹考虑如何建立怎么样的模型、配套什么样的技术手段,才能实现最佳的状态,满足各业务更短周期、高质量的交付业务的诉求。回首望去,异业合作权益的陆续接入,6.18大促和双11活动的需求扎堆,中间穿插部分机型首屏白页等问题的困扰,在一阵慌乱之后,我们逐渐稳住了阵脚。随着组件化进程的推进,为方便各业务解耦,对联动容器提出了更高的要求,需要支持任意类型、任意数量的子view进行联动滚动,也就是本文要阐述的多子view嵌套滚动通用解决方案。本文将尝试给出解答。
2024-05-29 00:41:42
849
原创 最近做的流水账 _ 闲聊扯淡
RouterDsl= nullthrow it这个就是第一个重构完的版本了。这样我们就可以通过构造者的模式去创建这个Request了,但是我始终觉得还是略微有点不够风骚。接下来看我们最终呈现给大家的dsl。success {fail {bundle {这个版本是不是就看起来很风骚了,首先这个闭包,代表构造了一个Request,然后我们可以在这个闭包内,定义添加bundle。
2024-05-29 00:40:40
482
原创 新鲜出炉,百度安卓工程师社招面经,文末附答案
举了个数据库联合查询的例子,写个简单的SQL语句。(join)TCP的三次握手说一下?为什么是三次握手?为什么是四次挥手?TCP的滑动窗口原理知道吗?(我说原理不清楚,但是我知道他解决的是什么问题。hashMap是线程安全吗?如何实现线程安全?Android的持久化存储方式说一下?Android的启动模式和场景说一下Android的ANR知道吗?怎么避免?内存溢出和内存泄露说一下(中间有提了下Handler)百度三面====
2024-05-29 00:37:35
1135
原创 Zxing二维码自定义修改关键代码
5.关键的一步,解决竖屏后图像拉伸问题。此处我们根据屏幕分辨率来定扫描框大小更灵活一点,同时将偏移量topOffset修改为(screenResolution.y - height)/4。示例代码中的线条是居中且不动的,我们可以将其修改为上下移动的扫描线,且可以改变线条的样式。此时的扫描框是竖直拉伸的矩形,很难看,我们可以将其修改为正方形或扁平型的。/* 以下为用渐变线条作为扫描线 */第五步:扫描框四个角和扫描线条修改。第四步:扫描框位置和大小修改。//线型矩形的四个圆角半径。
2024-05-29 00:05:59
347
原创 YYModel源码学习
/根据调用的类,对YYClassIvarInfo、YYClassMethodInfo、YYClassPropertyInfo、YYClassInfo、_YYModelPropertMeta、_YYModelMeta进行赋值。[self yy_modelWithDictionary:dic] //传入NSDictionary数据,返回实例对象。[self _yy_dictionaryWithJSON:json] //转成NSDictionary类型数据。//对类的属性进行赋值操作。
2024-05-29 00:05:28
307
原创 XML中配置网易云歌手详情滑动效果
custom_transformation属性则是专为自定义Transformation而服务,其值为自己实现的Transformation类的全路径。自定义Transformation有两种方式,其一是实现Transformation接口,另一种方式是继承TransformationAdapter类,TransformationAdapter是Transformation是Transformation接口的空实现,继承于此则不需要实现所有的方法。/**
2024-05-29 00:04:56
927
原创 wap网站制作教程
Postfields大至和HTML中的hidden差不多,但是wml的变量不像html中的那样需要在javascript中传送,它可以直接写在wml中,这一点上一节已经讲解了.在这里的传递的方法是get,post方法在WAP的规范也是被支持的,仿真器也能识别它,但是很不幸,在Nokia 7110中,这个post不被支持,所以你没得选择.如果你是一位高手,也许这款软件就是多余的,但随便打开一个记事本就能写个WAP网站出来的高手当然不能多见,所以我要说,EasyPad WAPtor,用处大大的。
2024-05-29 00:04:25
644
原创 Google Camera 架构了解下
2.Framework层:位于,相机Framework服务是承上启下的作用,上与应用交互,下与HAL曾交互。3.Hal层:硬件抽象层,Android 定义好了Framework服务与HAL层通信的协议及接口,HAL层如何实现有各个Vendor自己实现,如Qcom的老架构mm-Camera,新架构Camx架构,Mtk的P之后的Hal3架构.4.Driver层:驱动层,数据由硬件到驱动层处理,驱动层接收HAL层数据以及传递Sensor数据给到HAL层,这里当然是各个Sensor芯片不同驱动也不同.
2024-05-28 19:39:08
967
原创 Glide全方位,不是问源码那么简单
对于一般App来说,Glide完全够用,而对于图片需求比较大的App,为了防止加载大量图片导致OOM,Fresco 会更合适一些。并不是说用Glide会导致OOM,Glide默认用的内存缓存是LruCache,内存不会一直往上涨。二、假如让你自己写个图片加载框架,你会考虑哪些问题?当然,还有一些不是必要的需求,例如加载动画等。
2024-05-28 19:38:37
808
原创 Android最全面试题库(转)
给扔物线 HenCoder Plus 学员的一次分享文字版,面试分析文章,写得很好,我觉得每个人都可以看一下。2018届android校招面试总结:百度,大疆,乐视,知乎(逐步更新答案)Android 面试指南:我们需要怎样的工程师,我们需要成为怎样的工程师?2018Android面试笔记,只有两家公司,广州博冠,广州拓普基因。Java / Android 面试资料集锦,一个面试相关的集合。2018Android面试总结| 掘金技术征文,心得和问题都有。最接地气的Android面试总结心得。
2024-05-28 19:08:04
337
原创 Android最佳实践之响应灵敏性
潜在的耗时操作,例如网络或数据库操作,或者高耗时的计算如改变位图尺寸,应该在子线程里(或者以数据库操作为例,通过异步请求的方式)来完成。但不再是在子线程里做这些任务(因为BroadcastReceiver的生命周期短),替代的是,如果响应Intent广播需要执行一个耗时的动作的话,应用程序应该启动一个Service。这意味着你的应用程序所做的事情如果在主线程里占用了太长的时间的话,就会引发ANR对话框,因为你的应用程序并没有给自己机会来处理输入事件或者Intent广播。画面并异步来填充这些信息。
2024-05-28 19:07:33
274
原创 Android数据存储通用策略
该SQLiteStore类只是简单的介绍了SQLite核心的功能,包括CRUD以及升级策略,API含有大量函数可以直接源码参考。策略:一般配置文件可以写在Sharedpre,大的文件一般存在sd卡,关系比较紧密/复杂的关联信息写在Sqlite。这里的文件保存对象String,如下载的一般都是流,如复制的一般是file,操作大同小异,工具类可以自己改写。实际应用中,如果CRUD一般都会转化层bean类的形式操作,一般整个过程可以设计,写接口等。常用有:greenDAO / ORMLite 强烈推荐这两个。
2024-05-28 19:07:01
380
原创 Android数据可视化
下载ECharts组件将下载好的echarts.min.js文件放入工程中assets目录下。如果没有assets目录,可以先在mian目录下,通过右击 new -> Folder -> Assets Folder 创建。编写echarts.html文件,并将echarts.html放入assets目录。
2024-05-28 19:06:30
556
原创 Android 端内数据状态同步方案VM-Mapping
同一个数据Model对象,比如一个卡片Model,每次更新都是全局可见的。但是很明显,对数据Model的要求很高。一个业务层数据Model类型,要全局统一,比如,一个视频卡片业务层的类型是“ModelA”,那么全局场景不能有“ModelB”表示卡片。在很多场景下,业务层会对原始数据Model进行包装适配;内存占用很大;可能要缓存很多个列表。基于注解的对象映射方案VM-Mapping。
2024-05-28 18:41:09
565
原创 Android 的manifest解析
ApplicationInfo.java源码:/**//*** tag.*//***//***//*** .*//***//***//***//***//***//***//***//***//***//***//***//***//***//***//***//***//***//***//***//***/
2024-05-28 18:40:07
1002
原创 Android 流程度评测知多少
Android性能优化第(四)篇—Android渲染机制说过,Android系统每隔16ms发出VSYNC信号,触发对UI的渲染,16ms没完成绘制就会卡顿。VSync机制就像是一台转速固定的发动机(60转/s)。每一转会带动着去做一些UI相关的事情,但不是每一转都会有工作去做(就像有时在空挡,有时在D档)。有时候因为各种阻力某一圈工作量比较重超过了16.6ms,那么这台发动机这秒内就不是60转了,当然也有可能被其他因素影响,比如给油不足(主线程里干的活太多)等等,就会出现转速降低的状况。
2024-05-28 18:39:36
318
原创 123012016068-吴雨晴-android博客
需要注意的是,在使用putExtras方法设置Bundle对象之后,系统进行的不是引用操作,而是复制操作,所以如果设置完之后再更改bundle实例中的数据,将不会影响Intent内部的附加信息。我们注意到,在打开网页时,为Intent指定一个data属性,这其实是指定要操作的数据,是一个URI的形式,我们可以将一个指定前缀的字符串转换成特定的URI类型,如:“http:”或“https:”表示网络地址类型,“tel:”表示电话号码类型,“mailto:”表示邮件地址类型,等等。
2024-05-28 18:09:51
792
原创 10天学会kotlin DAY5 初始化块
/ 这样会直接造成info 返回的是一个null ,因为在进入 init 之后,直接调用的就是getInfoMethod()方法,这时候 成员变量 info 还没有进行初始化赋值。// 当你调用 主构造函数,传入info, 再执行成员变量,调用getInfoMethod() 函数,获取字符长度的时候,其实你获取的是null。// 在这里,看上去,代码没有任何问题,但是我们前面讲了,成员变量 number 和 init 是同级的。// 模拟数据库的加载,写一个定时器。
2024-05-28 18:09:21
196
原创 10 个 GitHub 上最火的程序员简历项目,2021 金三银四必备的加薪宝剑!
包括 PHP 程序员简历模板、iOS 程序员简历模板、Android 程序员简历模板、Web 前端程序员简历模板、Java 程序员简历模板、C/C++ 程序员简历模板、NodeJS 程序员简历模板、架构师简历模板以及通用程序员简历模板。熟悉模块化、前端编译和构建工具,熟练运用主流的移动端 JS 库和开发框架,并深入理解其设计原理,例如:Zepto、React 等。项目包括程序员简历例句,程序员简历范例,Java 简历模版,Python 简历模版,C++ 简历模版。适合中文的简历模板收集。
2024-05-28 18:08:19
332
原创 2020对标阿里P8,最强学习路线:Android小白——Android高级工程师进阶学习(原理+实战
想要拿高薪实现技术提升薪水得到质的飞跃。当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。最后小编想说:不论以后选择什么方向发展,目前重要的是把Android方面的技术学好,毕竟其实对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。
2024-05-26 17:12:52
289
原创 2020初中级Android开发社招面试总结+解答分享!
谈一谈Fragment的生命周期 ?与Activity生命周期的不同 ?谈谈Activity和Fragment的区别?Fragment中add与replace的区别(Fragment重叠)getFragmentManager、getSupportFragmentManager 、getChildFragmentManager之间的区别?FragmentPagerAdapter与FragmentStatePagerAdapter的区别与使用场景Service谈一谈Service的生命周期?
2024-05-26 17:12:20
319
原创 Android 10适配获取设备信息
自 Android 10(API 级别 29)起,您的应用必须是设备或个人资料所有者应用,具有特殊运营商许可,或具有 READ_PRIVILEGED_PHONE_STATE 特权,才能访问不可重置的设备标识符。作者在对待Android 10及以上的用户进行了return " "的操作,但我们在开发的过程中是需要去适配这个型号的用户的,查找了错误描述。通过查看 Google Android开发者官方文档《唯一标识符最佳做法》发现。中看到的,使用SSAID,实例ID、广告ID,随机生成的ID等。
2024-05-26 15:32:34
254
原创 android 10(8)
就是用来判断QsPanel是否是展开的。在NotificationPanelView.java中,会对下拉QsPanel判断是否展开状态的判断的。首次下拉默认是不展开的 第二次下拉状态栏的时候 就会确定是展开的。当为true 时就代表现在已经是展开的状态了。,如有侵权,请联系删除。
2024-05-26 15:31:00
279
原创 Android OOM与 leak window
这个时候要是你继续生白手起家的百万富翁成一个10M的int数组是没有问题的,反而生成一个4M的Bitmap就会跳出OOM。而Bitmap的生成是路程经过过程malloc进行内存分配的,占用的是C的内存,这个也就说明了,上面所说的的4MBitmap无法生成的原因,因为在13M被Java用过后,剩下C能用的只有3M了。1.一个进程的内存可以由2个部门组成:java 施用内存 ,C 施用内存 ,这两个内存的和必需小于16M,不然就会出现各人熟悉的OOM,这个就是熬头种OOM的情况。
2024-05-26 14:29:44
289
原创 Android MVP模式 入门
还是Presenter?看起来的确像那么回事,但是细细的想想这个View对应于布局文件,其实能做的事情特别少,实际上关于该布局文件中的数据绑定的操作,事件处理的代码都在Activity中,造成了Activity既像View又像Controller(当然了Data-Binder的出现,可能会让View更像View吧)。而MVP的出现,是的view层不能和Model层直接交互,Presenter作为中间的桥梁,连接view和model,将view和model完全解耦,使得Activity代码不再臃肿。
2024-05-26 14:29:13
327
原创 Andorid --- 为什么要使用事务,什么叫做事务的提交和回滚?
在实际数据库的操作中,无非会用到增删改查,一般增加数据、修改数据、删除数据需要开启事务。比如说你插入一条数据的时候可能插入失败,这样就需要事务。将你的所有操作撤回,数据恢复一开始的样子。开启事务,将任务放到一个事务中操作。三、什么叫做事务的提交。四、什么叫做事务的回滚。
2024-05-26 14:26:55
271
原创 2024疫情下Android技术人的宅家学习进阶指南!花了大价钱大厂内部买来的学习资料,爱看不看!(全网神级笔记整理)
这个时候,一本好书的价值就能充分体现出来了:它能够将碎片化的知识和信息整合成一套体系,由简入深,层层递进,能够引起你的思考,激发你的灵感。这里,作为技术人,我还是推荐大家有时间可以整理一下平时工作或者生活中积累的一些感悟或者心得,总结下来,并以文字(博客)或者视频的方式分享给大家,这样你即加深了印象同时也造福了大家,岂不是一举多得的事情嘛?在我们实践的时候,很多平时学习忽略掉的细节可能就显得尤为重要,这个时候我们有可能需要重头再学习一遍,实践的过程同时也是学习和加深理解,重构知识体系的过程。
2024-05-26 01:04:53
392
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人