自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android面试被问到内存泄漏了咋整?

前言内存泄漏即该被释放的内存没有被及时的释放,一直被某个或某些实例所持有却不再使用导致GC不能回收。文末准备了一份完整系统的进阶提升的技术大纲和学习资料,希望对于有一定工作经验但是技术还需要提升的朋友提供一个方向参考,以及免去不必要的网上到处搜资料时间精力。文末有免费福利哦Java内存分配策略Java程序运行时的内存分配策略有三种,分别是静态分配,栈式分配,和堆式分配。对应的三...

2019-03-18 22:53:43 376

原创 RecyclerView缓存机制(咋复用?)

引子如果列表中每个移出屏幕的表项都直接销毁,移入时重新创建,很不经济。所以RecyclerView引入了缓存机制。 回收是为了复用,复用的好处是有可能免去两个昂贵的操作: 为表项视图绑定数据 创建表项视图 下面几个问题对于理解“回收复用机制”很关键: what:回收什么?复用什么? where:回收到哪里去?从哪里获得复用? when:什么时候回收?什么时候复用? ...

2019-03-18 22:48:45 514

原创 Web 性能优化:缓存 React 事件来提高性能

这是 Web 性能优化的第三篇,上一篇在下面看点击查看:Web 性能优化: 使用 Webpack 分离数据的正确方法 Web 性能优化: 图片优化让网站大小减少 62%JavaScript中一个不被重视的概念是对象和函数是如何引用的,并且直接影响 React性能。 如果创建两个完全相同的函数,它们仍然不相等,试试下面的例子:const functionOne = function...

2019-03-15 19:57:32 437

原创 Android 高级开发面试题以及答案整理

如今安卓开发不像前几年那么热门,但是高级人才依然紧缺,大家看着这句话是不是很熟悉,因为 web 高级人才也紧缺,c++ 高级人才一样紧缺,那么到了人工智能时代,人工智能时代的高级人才也同样会紧缺!似乎是高级人才的人在其他领域也是高级人才,而不是因为选择了热门才会一帆风顺。文末有免费福利哦网上高级工程师面试相关文章鱼龙混杂,要么一堆内容,要么内容质量太浅, 鉴于此我整理了如下安卓开发高级工程师面...

2019-03-15 16:29:52 740 1

原创 Android自定义拍照实现

前言由于网上大部分自定义相机的实现,都是耦合性比较强的,不方便今后的复用,所以我自己实现了一套自定义相机,方便以后的扩展。自定义相机分为以下3个部分。文末有免费福利哦相机的预览布局SurfaceView ,方便用户实时预览。写成自定义控件,方便今后的复用。 相机的自动聚焦以及点触聚焦,拍照需要聚焦,要不然拍出的图片很可能是模糊的。写成自定义控件,方便今后的复用。 相机的自定义布局,这部...

2019-03-14 23:37:02 2241 1

原创 中级Android开发应该了解的Binder原理

一、基础概念Linux的进程空间是相互隔离的。Linux将内存空间在逻辑上划分为内核空间与用户空间。Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,为了保证内核安全,它们是隔离的。内核空间可以访问所有内存空间,而用户空间不能访问内核空间。用户程序只能通过系统调用陷入内核态,从而访问内核空间。系统调用主要通过 copy_to_user() 和 copy_from_u...

2019-03-14 22:19:29 165

原创 Android内存泄漏场景

首先我们提出一个问题,什么是内存泄漏? 内存泄漏,通俗得来讲就是“没有用的对象无法被回收”然后我们再提出一个问题,内存泄露会导致什么情况?肯定是内存溢出,然后程序崩溃啊!区别相信初学者可能不太清楚内存溢出和内存泄漏的区别。内存溢出:程序使用的空间大于原本系统给它申请的空间。 内存泄漏:在new了对象之后,没有使用这个对象了,但是又没有被回收,一直占用着内存。储备知识要想...

2019-03-12 23:07:51 412

原创 Android 侧滑只需一步

先解释一下这个标题,说的是实现App侧滑返回功能只需要一行代码就能搞定,怎么做到的我待会会说。侧滑所指的就是侧滑返回,后面的介绍过程我将用侧滑表面其意。请看侧滑效果如下图:Github地址:0侵入侧滑返回使用在 Application 初始化 SwipeBackHelper.init(this); // 就这一步操作复制代码本篇不打算长...

2019-03-12 22:59:26 376

原创 资本寒冬下的android面经

在2018年11月初,公司倒闭,无奈走上找工作的道路,不想自己平时图安逸,不思进取,再次找工作才发现,android行业也不是站在风口上,猪也能吹上天的世道了.作为技术小菜的我,再找工作那几个月真是战战兢兢,被打击得信心全无.记录下我的面试经历,分享给需要的人.勉励自己要时时进步,才不会被淘汰.猎豹移动:(有笔试)atomicinteger内存模型 static编译时有啥不同,stati...

2019-03-11 15:50:09 382

原创 Android Application是单例,正确吗?

前言Android 中Application是单例,这个问题可能大家会毫不犹豫的回答正确但是,如果APP中如果有集成一些第三方SDK的并且在Application中加了打印的可能就会发现,APP启动的时候怎么onCreate中的打印走了多次不是说Application只会实例化一次的吗?因为onCreate走了多次,说明创建了多个那这个问题答案应该明朗了,在某种情况下,Appli...

2019-03-11 15:16:12 879

原创 一起来实现网易云音乐引导页效

前言开始之前先看效果 左边为网易云的效果 右边为我实现的效果质量有所压缩,具体可去下载网易云音乐自行查看效果文末有免费福利哦本demo apk文件下载分析目测布局:分为两个viewpager,上面展示文字的viewpager和下面的图片viewpager; 进一步观察:上面的文字viewpager滑动有延迟,而图片viewpager是没有滑动自带动画的,而且都没有自...

2019-03-11 14:56:52 768

原创 Android组件化开发的简单应用

组件化开发的主要步骤:一、新建Modules1、新建Project,作为应用的主Module。2、新建Module:"Common",类型选择"Android Library",作为所有其它Module的基础依赖库。3、新建Module:"Home",类型选择"Android Library",依赖"Common"。4、新建Module:"Project",类型选择&q

2019-03-07 23:20:37 255

原创 Android 组件的三种点击事件写法

一、准备工作1、项目结构2、布局文件(activity_main.xml) 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="h...

2019-03-07 23:13:11 713

原创 Android 上传图片到服务器 okhttp一

一、相关知识①Android权限申请②网络访问框架OKHttp③内存溢出问题:图片压缩④Android 系统7.0以上调用系统相机无效⑤有关图片上传过程中遇到的内存溢出问题二、效果展示二、代码①HTML 1 <LinearLayout 2 android:layout_width...

2019-03-07 23:08:21 3759 2

原创 Glide回调和监听机制分析

图片回调的流程前面的文章详细介绍了Glide加载图片的流程,这里我们重点回顾一下图片的的显示流程:DecodeJob完成图片的装载之后,会回调到notifyEncodeAndRelease()方法,之后的流程如下:上面的流程可以看到,图片展示的地方是在Target的onResourceReady()中执行的。这里的Target是哪个步骤构建的呢?回顾一下前面的文章流程中可以...

2019-03-06 17:01:53 368

原创 RxJava2.0操作符详解

Rxjava2.0概述通过前面的文章介绍,读者对RxJava2.0应该有了初步的认识。RxJava2.0相对1.0没有增加新的功能,最大的变化是把原来与背压有关的操作符抽取出来放在Flowable中处理;另外2.0的接口定义更符合ReactiveStream的规范。操作符的功能和1.0相比没有太大的变化,不过Flowable是背压相关的功能抽离出来的,本篇我们来详细分析下各种操作符的作用和用法...

2019-03-06 16:57:10 523

原创 浅析React Native 原理

一.React Native 框架分析RN_整体框架图.png层次架构: Java层:该层主要提供了Android的UI渲染器UIManager(将JavaScript映射成Android Widget)以及一些其他的功能组件(例如:Fresco、Okhttp)等,在java层均封装为Module,java层核心jar包是react-native.jar,封装了众多上层的inte...

2019-03-06 16:34:43 419

原创 2019 Android 高级面试题总结

说下你所知道的设计模式与使用场景a.建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。使用场景比如最常见的AlertDialog,拿我们开发过程中举例,比如Camera开发过程中,可能需要设置一个初始化的相机配置,设置摄像头方向,闪光灯开闭,成像质量等等,这种场景下就可以使用建造者模式装饰者模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装...

2019-03-05 22:01:10 227

原创 Android Activity启动流程源码分析

最近大致分析了一把 Activity 启动的流程,趁着今晚刚

2019-03-05 15:57:21 197

原创 Flutter 与 Android 原生 WebView 对比

前言自从 google 推出 flutter 跨平台开发框架以来,flutter 在各个技术论坛里被炒得如日中天。说到跨平台开发,就不得不提 WebView,WebView 可以说是最廉价的跨平台开发方案。我们知道,flutter 可以和 native 混合开发,它们可以互相调用。那么当我们进行混合开发的时候,如果需要使用 WebView,我们应该调用原生的 WebView 还是使用 fl...

2019-03-05 15:10:38 1583

原创 程序员私活收入:随随便便月入1万多,有的走向人生巅峰

现在,很多程序员,通过做私活承接项目,将自己的程序能力转化为收入。在互联网匿名社区,一些同行开始交流起私活收入。有程序员炫耀:每个月接私活够生活费了,如果能长期稳定就可以辞职离开北京了。如下便是其自曝的收入,月入高达1万多,楼主还进一步表示:一个是帮别人每个月设计几张微博传播图,每月3000,还有一个是一个工具类的App,每个月抽空帮他们迭代设计页面,4800,剩下的就是朋友找我帮排个...

2019-03-04 22:21:25 782

原创 Android多开检测的另一个思路

之前写了篇检测多开的文章后,经过几个月的时间,基本上都已经被各多开软件绕过了。最近无意中发现了一些新特征,在特定环境下可以用来检测多开环境,特此来分享一下。起因某次在多开环境下运行demo,发现动态库加载失败了,错误信息如下: 1234 java.lang.UnsatisfiedLinkError: dlopen failed: "/data/a...

2019-03-01 23:19:49 1249

原创 Gradle 之 Android 中的应用

在上一篇文章中 Gradle 之语言基础 Groovy 主要介绍了 Groovy 的基础语法(如果没有 Groovy 的基础,建议先看看上篇文章,如果可以动手敲一下里面的示例代码就更好不过了),也是为本篇文章打基础的。本篇文章主要介绍 Gradle 在 Android 中的应用(Android DSL 和 Gradle DSL),也是通过一些示例来介绍和理解,主要分为以下一些内容,示例代码都在...

2019-02-28 22:25:27 203

原创 Android研发技术进阶之路

前言移动研发火热不停,越来越多人开始学习android开发。但很多人感觉入门容易成长很难,对未来比较迷茫,不知道自己技能该怎么提升,到达下一阶段需要补充哪些内容。市面上也多是谈论知识图谱,缺少体系和成长节奏感,特此编写一份android研发进阶之路,希望能对大家有所帮助。这篇文章里,我们只谈技术,不谈软技能。在这里我把攻城狮分成初级、中级、高级和资深四个阶段,分别对研发设计能力、工...

2019-02-28 22:18:21 510

原创 Android 8.0 ActivityManagerService 启动流程

ActivityManagerService(以下简称为 AMS)是 Android 中最核心的系统服务之一,我认为 AMS 最重要的功能有两个:对应用程序进程的管理:应用程序进程的创建、销毁和优先级的调整 对应用程序进程中的四大组件进行管理:最常见的 Activity、Service 等四大组件的生命周期方法都是通过 AMS 间接地调度执行的这篇文章对 Android 8.0 系统中的 ...

2019-02-28 18:01:55 513

原创 成为android工程师的31+个小技巧

成为Android开发人员很容易,但成为一个成功的Android开发人员,而从其他开发者中脱颖而出。要做到这一点,需要很多努力,激情,奉献和毅力。没有快捷方式或简单的方法,我可以让你成为一个真正成功的开发人员。但是,如果你愿意付出努力和需要的心,你一定会得到你应得的一切成功。在您成为更好的Android开发人员的追求下,这里有一些从我的经验中帮助您的旅程中的一些小巧的专业技巧。所以,如果你...

2019-02-27 20:41:43 454

原创 Android 1.5到10.0 都有哪些新特性?

Android 1.5(Cupcake纸杯蛋糕):1.智能虚拟键盘;使用widgets实现桌面个性化;在线文件夹(Live Folder)快速浏览在线数据;视频录制和分享;图片上传;2.更快的标准兼容浏览器;Voice search 语音搜索;立体声蓝牙和免提电话Android 1.6(Donut甜甜圈):1.完全重新设计的Android Market,可以显示更多的屏幕截图;手势...

2019-02-26 21:34:41 964

原创 为什么程序员下班后只关显示器从不关电脑?

你下班时是不是只将显示器一关,揣上手机就走了?曾有安保人员晚上来办公室巡查时问,为什么这些人不关机就下班呢?作为程序员,你会心一笑。对方不明白如果关机了,第二天程序员上班可能会崩溃:打开IDEA,并定位到昨天的代码,十分钟打开Navicat,两分钟打开笔记软件,一分钟打开浏览器,找到昨天的历史记录,五分钟打开Charles,三分钟打开各种IM软件,五分钟打开Xs...

2019-02-26 21:25:13 698

原创 Activity 添加滑动关闭功能-[Android_YangKe]

微信是腾讯家族的一款旗舰产品,前些日子实在无聊就可劲刷朋友圈,刹那间发现微信具有二级页面滑动关闭功能,(屏随指动,纵享丝滑)用户好感倍增,顿时两眼泛水花开始膜拜大厂产品,工程师。努力成为自己想要成为的人,心中默念:“当你停下来休息的时候,不要忘记别人还在奔跑”。于是开始学习相关技术丰富自己。百度,Google,Github,功夫不负有心人,通过自己几个小时的努力实现了自己想要的效果。我们看图:...

2019-02-25 17:34:30 453

原创 资本寒冬下,我为什么辞去了月薪3万的工作

昨天刚刚办完了离职手续,裸辞。1月15日,发了最后一笔工资,从此,再也享受不了没有按时到账工资的喜悦了。我在的公司,是互联网行业内知名的大厂「字节跳动」,也就是做出了今日头条、抖音、火山等等爆品的公司。这次裸辞,不是觉得公司不好,只是每个人的人生需要一次「月亮与六便士」的选择。从员工的角度来讲,「字节跳动」是一家难得的好公司。好在哪里呢?互联网行业内大家耳朵都听出茧的薪资、...

2019-02-25 17:24:19 326

原创 Android 组件篇-[Android_YangKe]

ActivityActivity Android 四大组件之一,代表着页面。它是整个视图的承载,从下层往上看分别贴附着 Window、ViewGroup、View。同时 Activity 接收用户的各种手势、触屏事件并进行派发。顺序从 Activity 开始到 View 结束:Activity->Window->ViewGroup->View。默认 Activity 的启动模...

2019-02-25 16:21:17 256

原创 彻底解析Android缓存机制——LruCache

关于Android的三级缓存,其中主要的就是内存缓存和硬盘缓存。这两种缓存机制的实现都应用到了LruCache算法,今天我们就从使用到源码解析,来彻底理解Android中的缓存机制。一、Android中的缓存策略一般来说,缓存策略主要包含缓存的添加、获取和删除这三类操作。如何添加和获取缓存这个比较好理解,那么为什么还要删除缓存呢?这是因为不管是内存缓存还是硬盘缓存,它们的缓存大小都是有...

2019-02-22 14:50:20 425

原创 程序员好心帮应届生改代码后,结果扎心了

近日,一名程序员在互联网社区的吐槽:公司一个应届毕业生,领导安排和我一起做项目,提交的代码有许多不合适的地方,我在没有和他提前沟通的情况下做了部分重构,结果直接喷我,让我不要改他的代码,老哥们,遇到过这种情况吗? 对此,网友是如此评论的: 直接说让他自己改,改之前你应该先说,不过应届生也敢喷你,不是后台强,就是情商低;千万别自己改,你应该给他说怎么改,然他自己改,我就是应届生,我领导就...

2019-02-21 22:26:46 228

原创 程序员吐槽:面试牛皮吹得太大,被高薪录取后反而不敢去了

我们人生中有时会有那么一种迷茫,突然一下被人家认同有些难以置信,就连自己也开始怀疑自己,产生“自己真的有这么厉害吗?被人高估怕让人家失望”的想法,就有那么一个程序员就是如此。他在一家公司面试得到的评价很高,高的让自己都产生了怀疑,害怕自己入职后达不到他们当初的期望,不知道该去还是不去? 对于这种情况网友们当然认为是要去的啦!有网友表示:薪资高于能力不可怕,入职入职!之后有什么问题加油解...

2019-02-21 22:14:18 839

原创 分享一份非常强势的Android面试题

马上步入金三银四了,是时候看一些面试题去鹅厂了,接下来我将分享一些面试题,每天总结一点点,希望对大家有所帮助!ListView和RecyclerView区别参考链接:https://blog.csdn.net/shu_lance/article/details/79566189既然RecyclerView在很多方面能取代ListView,Google为什么没把ListView划...

2019-02-21 16:16:36 236

原创 Android面试题整理 深坑莫入

Android 面试题整理本文分为Java基础、Android知识点、设计模式、算法、网络等,抛砖引玉,大家可酌情服用 水平一般,个人整理 题目来源于网络搜集 结合右下角目录食用更佳 不再更新了 (作者两年经验,断断续续写了四个月左右,之后集中面了魔都30多家一二线的互联网公司,拿到了2/3的offer)Android面试之Java问题0. Android面试之Java基础篇...

2019-02-20 23:01:40 278

转载 Android主题换肤 无缝切换 你值得拥有

链接:https://www.jianshu.com/p/af7c0585dd5b天再给大家带来一篇干货。 Android的主题换肤 ,可插件化提供皮肤包,无需Activity的重启直接实现无缝切换,可高仿网易云音乐的主题换肤。这个链接是本次的Demo打包出来的样本SkinChangeDemo,可以去下载下来先试试效果,皮肤文件需放到存储卡的根目录下。关于Android的主题换肤都是...

2019-02-20 22:56:20 307

原创 Android大厂面试题锦集

一篇最完全的android面经诞生了。这是我集合了牛客网、百度、简书等网站的几十篇面经和我自己面试的经历的合集,希望大家喜欢。(ps:里面当然会有纰漏,如果有问题欢迎大家留言或者加我QQ讨论)1.android事件分发机制,请详细说下整个流程事件分发(面试).png2.android view绘制机制和加载过程,请详细说下整个流程1.ViewRootImpl会调用perfo...

2019-02-20 22:51:44 1570

转载 我的 Android 开发实战经验总结

链接:https://www.jianshu.com/p/4f152bc8f4f3以前一直想写一篇总结 Android 开发经验的文章,估计当时的我还达不到某种水平,所以思路跟不上,下笔又捉襟见肘。近日,思路较为明朗,于是重新操起键盘开始码字一番。先声明一下哈,本人不是大厂的程序猿。去年毕业前,就一直在当前创业小团队从事自己热爱的打码事业至今。下面总结是建立在我当前的技术水平和认知上写的,如有...

2019-02-20 22:47:02 169

原创 Service由浅到深——AIDL的使用方式

前言最近有很多朋友问我这个AIDL怎么用,也许由于是工作性质的原因,很多人都没有使用过aidl,所以和他们讲解完以后,感觉对方也是半懂不懂的,所以今天我就从浅到深的分析一下这个aidl具体是怎么用的,希望对大家有帮助。作为一名合格Android开发人员,如果没听过Service,那就有点说不过去了啊,Service是Android四大组件之一,它是不依赖于用户界面的,就是因为Service不依...

2019-02-20 22:32:57 152

空空如也

空空如也

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

TA关注的人

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