2 北辰丶

尚未进行身份认证

我要认证

Android构架探索

等级
TA的排名 2w+

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

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

2019-03-18 22:53:43

RecyclerView缓存机制(咋复用?)

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

2019-03-18 22:48:45

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

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

2019-03-15 19:57:32

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

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

2019-03-15 16:29:52

Android自定义拍照实现

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

2019-03-14 23:37:02

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

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

2019-03-14 22:19:29

Android内存泄漏场景

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

2019-03-12 23:07:51

Android 侧滑只需一步

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

2019-03-12 22:59:26

资本寒冬下的android面经

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

2019-03-11 15:50:09

Android Application是单例,正确吗?

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

2019-03-11 15:16:12

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

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

2019-03-11 14:56:52

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

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

Android 上传图片到服务器 okhttp一

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

2019-03-07 23:08:21

Glide回调和监听机制分析

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

2019-03-06 17:01:53

RxJava2.0操作符详解

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

2019-03-06 16:57:10

浅析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

2019 Android 高级面试题总结

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

2019-03-05 22:01:10

Android Activity启动流程源码分析

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

2019-03-05 15:57:21

Flutter 与 Android 原生 WebView 对比

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

2019-03-05 15:10:38

查看更多

勋章 我的勋章
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得