自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 收藏
  • 关注

原创 35岁程序员面试腾讯、头条、华为,快手安卓面试

![](https://img-blog.csdnimg.cn/20210412164207497.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JpdmVyX2x5,size_16,color_FFFFFF,t_70)其实,正如网友所说,在各行各业都存在中年危机,但只要你有技术40.50一样找到工作,难的是如何调整自己的心态。百度百科上对

2022-03-17 20:31:07 3003

原创 35岁Android程序员被阿里辞退,生活压力太大痛哭,中年危机如何自救

家庭是本来一艘可以同舟共济的船,所以度过中年危机不是一个人的事情,而是一个家庭的事情。对于家庭来讲,提前节源开流,情况允许下老婆出去工作多一份收入。减少不必要的开支,例如经常在家做饭,减少孩子不必要的辅导班等。多陪陪孩子与父母,适当缓解心中的压力。在知乎上有句话,我觉得说得很好:真正解决中年危机,靠的是家庭,靠的是媳妇的收入和支持,是父母的养老储备和义务劳动,是孩子的成长和回馈,是家庭的理解和包容。再说工作技术累积:无论走到哪里只要有资本就不怕饿肚子。程序员的资本不外乎是编程能力,23岁到27

2022-03-17 20:29:42 724

原创 2种Android图表的简单介绍+折线图、饼图的例子,字节跳动移动架构师学习笔记

setTitle(“PieChartActivity”);pie = (PieChart) findViewById(R.id.pie);//②输入数据//其中两个数字对应的分别是 X轴Y轴list.add(new PieEntry(25,“Cola”));list.add(new PieEntry(10, “Sprite”));list.add(new PieEntry(13, “Fanta”));list.add(new PieEntry(20, “Suntory”));list.add

2022-03-17 20:28:16 1370

原创 2019最新百度、头条、小米,kotlin构造器

你对网络请求做过哪些优化呢~1, 对于我这种菜鸟来说,这道题真的很空洞,但是我不能就这样简单的回答,我不知道,我没做过,网络这块我只用了现成的框架,这样回答肯定会挂的!2, 我相信如果我是面试官,对面坐着一位工作经验不足1年的同学,我也不期待他可以把这道题回答的很好,但我也不想听到那么简单的我不知~3, 所以,对于这道题而言,我首先回答了下okhttp中链接池复用,又简单讲了下对HttpDNS,IP直连的理解,以及对Http2.0多路复用,长连接的理解等等,当然我理解的非常浅,也当然答案并不重要,重

2022-03-17 20:22:35 178

原创 2019最新Android中级面试题目汇总解答,android程序设计基础教程

lib、class.dex和res占用了超过90%的空间,所以这三块是优化Apk大小的重点(实际情况不唯一)3.2.减少res,压缩图文文件图片文件压缩是针对jpg和png格式的图片。我们通常会放置多套不同分辨率的图片以适配不同的屏幕,这里可以进行适当的删减。在实际使用中,只保留一到两套就足够了(保留一套的话建议保留xxhdpi,两套的话就加上hdpi),然后再对剩余的图片进行压缩(jpg采用优图压缩,png尝试采用pngquant压缩)3.3.减少dex文件大小添加资源混淆shrink..

2022-03-17 20:21:10 113

原创 2020最新统计,年薪50万+的Android开发者所必备的知识体系架构,你都会吗?

JVMJavaIO注解序列化三:Android框架体系架构(高级UI+FrameWork源码)这块知识是现今使用者最多的,我们称之为Android2013~2016年的技术,但是,即使是这样的技术,Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生。职业生涯规划面向Android中的一切实体(高级UI+FrameWork源码)实体间的通信方案实体中数据存储专题四:360°Androidapp全方位性能..

2022-03-16 21:29:39 4966

原创 2020Android面试题跳楼大整理,京东-字节跳动面经+个人总结

我们以NDK为例,看看学习NDK需要哪些知识!思维学习脑图,有了图就有了学习路线,我们接下来就只要按照上面分支,一个个知识点去学习,就好了!为什么我们要学习NDK?NDK进阶学习全套手册(对应思维导图)Android高级架构师NDK系统学习核心笔记Android高级架构师NDK系统学习视频接下来是一些大厂的面试真题合集分为两部分:java 和 androidJava部分:1、八种数据类型以及他们的包装类2、abstract与interface的区别(抽象类和接口)3、重写和重

2022-03-16 21:23:20 5733

原创 2019AndroidBATJ面试题设计模式&算法专题总结,国内一线互联网公司面试题汇总

在 Java 中,什么叫观察者设计模式(observer design pattern )?观察者模式是基于对象的状态变化和观察者的通讯,以便他们作出相应的操作。简单的例子就是一个天气系统,当天气变化时必须在展示给公众的视图中进行反映。这个视图对象是一个主体,而不同的视图是观察者。使用工厂模式最主要的好处是什么?在哪里使用?工厂模式的最大好处是增加了创建对象时的封装层次。如果你使用工厂来创建对象,之后你可以使用更高级和更高性能的实现来替换原始的产品实现或类,这不需要在调用层做任何修改。举.

2022-03-16 21:21:46 92

原创 2019-阿里、腾讯、百度,天呐

11、Activity 怎么和Service 绑定,怎么在Activity 中启动自己对应的Service;12、请描述一下Service 的生命周期;13、AstncTask+HttpClient与AsyncHttpClient有什么区别;14、如何保证一个后台服务不被杀死;比较省电的方式是什么;15、如何通过广播拦截和abort一条短信;广播是否可以请求网络;广播引起anr的时间限制;16、进程间通信,AIDL;17、事件分发中的onTouch 和onTouchEvent 有什么区别,又该如

2022-03-16 21:20:11 82

原创 1549页Android最新面试题含答案,android游戏开发

22.Java中实现多态的机制是什么?答:方法的重写Overriding和重载Overloading是Java多态性的不同表现重写Overriding是父类与子类之间多态性的一种表现重载Overloading是一个类中多态性的一种表现.23.说说你对Java反射的理解JAVA反射机制是在运行状态中, 对于任意一个类, 都能够知道这个类的所有属性和方法; 对于任意一个对象, 都能够调用它的任意一个方法和属性。 从对象出发,通过反射(Class类)可以取得取得类的完整信息(类名 Class类型,所在包

2022-03-16 21:17:01 285

原创 Android 总结:自定义键盘实现原理和三种实例详解,熬夜整理Android高频面试题

如果一个code对应多个key,这个key代表的字符取决于这个key接受到的点击数taps,例如,一个键具有63,33,58编码:一次点击就是 ?两次点击就是 !三次点击就是 :一个 key 还可以有一些可选的属性:keyEdgeFlags 这个属性的值可以是left或者right这个属性通常加在一行中最左边和最右边的键上。keyWidth 这个属性定义了键的宽度,通常是一个百分比的值。isRepeatable 这个属性如果设置为true,那么当长按该键时就会

2022-03-05 17:29:46 2534

原创 Android 高频面试必问之Java基础,android开发者指南

| — | — || -XX:MetaspaceSize | 分配给Metaspace(以字节计)的初始大小。如果不设置的话,默认是20.79M,这个初始大小是触发首次 Metaspace Full GC 的阈值,例如 -XX:MetaspaceSize=256M || -XX:MaxMetaspaceSize | 分配给Metaspace 的最大值,超过此值就会触发Full GC,此值默认没有限制,但应取决于系统内存的大小。JVM会动态地改变此值。但是线上环境建议设置,例如-XX:MaxMetaspa

2022-03-02 20:02:40 143

原创 IOS开发之——事件的产生和处理(68),成功收获美团、小米安卓offer

touchesBegan…touchesMoved…touchesEnded…二 事件传递示例2.1 界面布局2.2 界面关系说明BaseView:继承自UIView,复写touchesBegan方法WhiteView:继承自BaseView,是窗体的ViewGreenView:继承自BaseView,是2号绿色窗体的ViewOrangeView:继承自BaseView,是2号橙色窗体的ViewBlueView:继承自BaseView,是3号蓝色窗..

2022-03-01 22:00:21 87

原创 HTTP请求以及HTTP响应,终于有人把Android程序员必学知识点全整理出来了

100~199 :表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程200~299 :表示成功接收请求并已完成整个处理过程,常用200300~399 :为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常用302、307和304400~499 :客户端的请求有错误,常用404500~599 :服务器端出现错误,常用 500消息头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理

2022-03-01 21:57:31 106

原创 Hexo博客开发之——jsDeliver,2021最新版

3.2 jsDeliver适用平台jsDeliver可以给npm、GitHub、WordPress平台资源加速,本文以GitHub为例进行说明3.3 使用说明// load any GitHub release, commit, or branch// note: we recommend using npm for projects that support ithttps://cdn.jsdelivr.net/gh/user/repo@version/filehttps://cdn.j.

2022-03-01 21:56:06 500

原创 GridView基于pulltorefresh实现下拉刷新 上拉加载更多功能,flutter文档

*/public final T getRefreshableView() {return refreshableView;}/**Whether Pull-to-Refresh is enabled@return enabled*/public final boolean isPullToRefreshEnabled() {return isPullToRefreshEnabled;}/**Returns whether the widget has disabl

2022-03-01 21:54:41 409

原创 Gradle原理流程分析,android系统软件开发

打包Android程序简要步骤:aapt2打包res资源文件aapt2建立索引通过javac编译java成class文件通过d8工具生成dex通过aapt2合并关联res和dex通过zipalign工具对齐处理通过apksigner工具签名​ 简单介绍就这些步骤,其中还有很多细节处理,比如多项目支持,差异化处理,缓存优化等等。这些如果手动处理基本上不可能,要让流程简单化,就需要对这些流程进行封装,这就是Gradle的作用了。帮助我们对各

2022-03-01 21:53:16 126

原创 JVM 连接阶段,深入分析

确保类文件遵从Java类文件的固定格式。**2.**语义检查确保类本身符合Java语言的语法规定,比如验证final类型的类没有子类,以及final类型的方法没有被覆盖。注意,语义检查的错误在编译器编译阶段就会通不过,但是如果有程序员通过非编译的手段生成了类文件,其中有可能会含有语义错误,此时的语义检查主要是防止这种没有编译而生成的class文件引入的错误。**3.**字节码验证确保字节码流可以被Java虚拟机安全地执行。字节码流代表Java方法(包括静态方法和实例方法),它是由被称作操作码的单

2022-02-16 17:19:45 151

原创 [Android-Framework] Crash for Java,程序员的中年危机

从安卓 APP 开发的角度,Java 崩溃捕获相对比较容易,虚拟机给 Java 字节码提供了一个受控的运行环境,同时也提供了完善的 Java 崩溃捕获机制。2.1 注册Thread中定义了Thread.UncaughtExceptionHandler 接口。public interface UncaughtExceptionHandler {void uncaughtException(Thread t, Throwable e);}Thread中存在两个UncaughtExceptionHa.

2022-02-05 15:13:42 268

原创 window与document的区别,2020-2021字节跳动Android面试真题解析

frame 窗口里的一个框架((FRAME>)(该属性本身也是一个对象)frames array 列举窗口的框架对象的数组,按照这些对象在文档中出现的顺序列出(该属性本身也是一个对象)history 窗口的历史列表(该属性本身也是一个对象)length 窗口内的框架数location 窗口所显示文档的完整(绝对)URL(该属性本身也是一个对象)不要把它与如document.location混淆,后者是当前显示文档的URL。用户可以改变window.location(用另一个文档取代当前文档

2022-02-05 15:10:52 99

原创 WebVies类介绍,android开发案例教程与项目实战

[SslErrorHandler] 表示一个处理SSL错误的请求,提供了方法操作[SslErrorHandler]请求[ClientCertRequest]表示一个证书请求,提供了方法操作(proceed/cancel/ignore)请求-[JsResult]用于处理底层JS发起的请求,为客户端提供一些方法指明应进行的操作,比如确认或取消。WebView基本// 获取当前页面的URLpublic String getUrl();// 获取当前页面的原始URL(重定向后可能当前url不同)//

2022-02-05 15:06:37 173

原创 View事件分发机制,这是一份面向Android开发者的复习指南

} else {predecessor.next = next;}target.recycle();target = next;continue;}}predecessor = target;target = next;}}}return handled;}首先看下注释1处的mFirstTouchTarget,那么mFirstTouchTarget != null是什么意思呢?这个从后面的代码逻辑可以看出来,当事件由ViewGroup的子元素成功处理时,mFirstTouchT

2022-02-05 15:05:12 2833

原创 View与ViewGroup绘制原理解析(三),【Android面试题】

TYPE_SYSTEM_OVERLAY= FIRST_SYSTEM_WINDOW+6;电话优先,当锁屏时显示。此窗口不能获得输入焦点,否则影响锁屏。public static final intTYPE_PRIORITY_PHONE= FIRST_SYSTEM_WINDOW+7;系统对话框。(例如音量调节框)。public static final intTYPE_SYSTEM_DIALOG= FIRST_SYSTEM_WINDOW+8;锁屏时显示的对话框。public stat

2022-02-05 15:03:47 124

原创 windows环境下JSP环境搭建:Apache2,写给安卓软件工程师的3条建议

#指定哪些请求交给tomcat处理,"DLOG4J"为在 workers.propertise里指定的负载分配控制器名 所有的请求都交给 controlJkMount /. DLOG4J3、在Apache24\conf\目录下新建两个文件分别是 workers.properties、uriworkermap.properties。这两个文件的内容大概如下:workers.properties1.首先我们配置了两个类型为ajp13的worker分别是s1和s2,它们指向同一台服务器上运行在两个不同

2022-02-04 16:04:39 99

原创 windows环境下JSP环境搭建:Apache2(1),androidjetpack使用

worker.DLOG4J.type=lb#重试次数worker.retries=3worker.DLOG4J.balanced_workers=tomcat1, tomcat2#粘性Session(默认是打开的) 当该属性值=True(或1)时,代表Session是粘性的, 即session粘着。若设置true,则同一个浏览器的请求(cookie相同)将会被分发到同一个tomcat(节点)#即同一Session在集群中的同一个节点上处理,Session不跨越节点。在集群环境中,一般将该值设置为F

2022-02-04 16:03:14 86

原创 Weex线上踩坑实录,kotlin语言优势

在weex文档中只说明了怎么集成到activity中,网上也有很多人在问如何将weex集成到fragment。其实答案很简单,weex渲染出来的内容其实只是在一个控件中,所以只需要和普通的fragment开发一样,将weex sdk嵌入即可。根据weex官方描述,在回调IWXRenderListener的onViewCreated返回创建的view。所以我们只需要让fragment实现IWXRenderListener,然后在onViewCreated中将渲染出来的view添加到整个视图容器中即可。最后提

2022-02-04 16:01:49 2606

原创 webRTC(四),Android学习笔记在互联网上火了

function gotMediaStream(stream){…window.stream=stream;…return navigator.mediaDevices.enumerateDevices();}//开始录制function startRecord(){buffer=[];var options={mimeType: ‘video/webm;codecs=vp8’}if(!window.MediaRecorder.isTypeSupported(options.mime

2022-02-04 16:00:24 224

原创 VS2010新建项目和发布(IIS服务器),看完老板哭着让我留下来

2.IIS服务器新建一个站点并配置2.1 打开IIS服务器,如下:2.2 右键点击"网站"来新建一个网站,点击"添加网站",如下:然后进行相关配置,如下:注意1:我们目前选择的物理路径是一个空的文件夹,这个文件,我们在网站发布的时候就是将网站的发布文件发布到这个文件夹。注意2:主机名我们暂时不填,那个是我们在申请域名之后再填的!我们点击“”确定,如下:2.3 如何在VS2010中发布在项目上右键点击“发布”,如下:在弹出的对话框中,发布方法选:文件系统,目标位置找到我刚改II

2022-02-04 15:58:59 733

原创 ViewModel原理,android开发实例大全PDF

return get(DEFAULT_KEY + “:” + canonicalName, modelClass);}@MainThreadpublic T get(@NonNull String key, @NonNull Class modelClass) {ViewModel viewModel = mViewModelStore.get(key);if (modelClass.isInstance(viewModel)) {if (mFactory instanceof OnReque

2022-02-04 15:56:09 121

原创 uni-app 商城选择商品左右菜单联动效果实现,字节跳动高工面试

},{title: “菜单2”,list: [“盖饭2”, “大白菜2”, “土豆2”, “西红柿2”, “辣椒2”]},{title: “菜单3”,list: [“盖饭3”, “大白菜3”, “土豆3”, “西红柿3”, “辣椒3”]},{title: “菜单4”,list: [“盖饭4”, “大白菜4”, “土豆4”, “西红柿4”, “辣椒4”]},{title: “菜单5”,list: [“盖饭5”, “大白菜5”, “土豆5”, “西红柿5”, “辣椒5”]},{

2022-02-04 15:54:44 586

原创 ScrollView(RecyclerView等)为什么会自动滚动原理分析

3.那么ScrollView为什么会滑到获取焦点的子view的位置了?答:通过上面的分析,我们可以看到当Scrollview中包含有焦点的view的时候,最终会执行view树的重绘制,所以会调用view的onLayout方法,我们看下ScrollView的onLayout方法android.view.ScrollView{@Overrideprotected void onLayout(boolean changed, int l, int t, int r, int b) {super.onLa

2022-02-04 15:51:54 783

原创 一个牛逼的插件又双叒诞生了,移动应用开发专业核心课程

开源插件地址:https://github.com/wuyr/GoogleLibraryVersionQuerier效果介绍:1. 编辑build.gradle时,会有代码提示:2. 光标定位到目标类库所在行,右键可快速查看和替换某个版本:插件安装方式:**本地安装:**https://github.com/wuyr/GoogleLibraryVersionQuerier/releases下载最新版本,然后解压,把里面的 zip 拖到 Android Studio 中即可。注意是拖解压后

2022-02-03 19:20:38 2460

原创 一个Android开发真实的996生活,我们到底在追求什么?,kotlin数组的问题

羊城通刷卡成功,今天运气很不错,有位置坐,可以稍微睡下了,毕竟公交到公司还有一个小时。他闭上了眼睛。在迷迷糊糊中,他听到一个声音,“××站到了”,他突然惊醒了起来,立即下次。“我×,坐过一个站了”,不过还好不是隔着很远,他急速往公司走。“打卡成功!”还是迟到了十分钟,一分钟三块钱。他叹了口气,走到工位中,放好电脑和书包,坐下。打开了 Android Studio。“昨天写到哪来着?”“哦,这里。”他自言自语,手指开始在键盘上跳跃起来。就这样,一年过去了。说好的项目奖金由于公司经营不善,决定

2022-02-03 19:19:13 1659

原创 【面试必备】Android中老生常谈的三级缓存框架问题你都了解了吗

上面的图画的比较乱,流程是:当activity要请求数据时1、先检查内存中缓存数据如果内存中有数据并且数据不脏时直接返回内存中的数据。2、如果内存中无数据并且数据不为脏时向本地数据库中请求数据,并且将请求的数据写入到内存中,再将内存中的数据返回。3、如果内存和本地数据库中都没有数据返回,也就是内存中无数据并且数据为脏时,向服务器请求数据,服务器返回的数据,保存到本地数据库并且保存一份到内存,最后将内存中的数据返回。三级缓存实现由三级缓存的原理可以实现三级缓存的框架,数据的来源有三个地方,内存,本.

2022-02-03 19:17:48 220

原创 【面经分享】字节抖音Android客户端3,深入理解JVM

客户端是如何根据 IP 地址找到服务器对应的主机的呢?6. 算法LeetCode 518. 零钱兑换 II题目开始理解错了。最后这个题没完全做出来,面试官让我讲了下思路。7. 反问部门业务?面试评价?我还有什么需要学习的地方吗?面试官反问:这次面试只是为了实习还是说有转正想法的?部门业务开发语言?多久能收到结果通知?一面结束后等了十几分钟,HR 通知第二天二面。二面(1 月 14 日,60 min)1. 自我介绍2. 项目介绍。用到了什么技术栈?.

2022-02-03 19:16:23 199

原创 【自学Flutter】32 交错动画的使用,移动应用开发专业

Animation padding;Animation color;StaggerAnimation({ Key key, this.controller }): super(key: key){height = Tween(begin:.0 ,end: 300.0,).animate(CurvedAnimation(parent: controller,curve: Interval(0.0, 0.6,curve: Curves.ease,),),);color = Colo

2022-02-03 19:14:58 150

原创 【自学Flutter】20,androidstudio计算器

}class _MyAppState extends State {static String loadFlag = “continue”;List wordsList = [loadFlag];@overridevoid initState() {super.initState();loadWords();}@overrideWidget build(BuildContext context) {Widget redDivider = Divider(color: Colors.re

2022-02-03 19:13:34 161

原创 【android每日一问】Glide常被问的几个问题,复习指南

memoryCache就是Glide使用的内存缓存,LruResourceCache类继承了LruCache,这部分可以自行查看一下源码。通过上面可以看到,GLide#build()方法中实例化memoryCache作为Glide的内存缓存,并将其传给Engine作为构造器的入参。Engine.class 截取部分源码{//生成缓存keyEngineKey key = keyFactory.buildKey(model, signature, width, height, transfor.

2022-02-02 17:55:35 108

原创 【Android】43,2021年Android社招面试题

0.53.新建layout_dialog.xml布局文件。<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”xmlns:tools=“http://schemas.android.com/tools”android:layout_width=“match_parent”android:layout_he.

2022-02-02 17:54:10 91

原创 【Android】36,帮你快速拿Offer

android:toXScale=“1”android:fromYScale=“0”android:toYScale=“1”android:pivotX=“50%”android:pivotY=“50%”android:duration=“1000”>ee.xml<?xml version="1.0" encoding="utf-8"?><scaleandroid:fromXScale=“0”android:toXScale=“1”android:fromY

2022-02-02 17:52:45 58

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除