![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android开发
初壹十五a
https://github.com/xiangjiana/androids
展开
-
作为过来人,对于Android MVP模式的一些详解
前言闲来无事在家偶然翻到了之前整理的文档和面试要做到准备路线,虽然内容有点多,但是技多不压身,多多益善本部分内容是关于Android进阶的一些知识总结,涉及到的知识点比较杂,不过都 是面试中几乎常问的知识点,也是加分的点。 关于这部分内容,可能需要有一些具体的项目实践。在面试的过程中,结合具体自 身实践经历,才能更加深入透彻的描绘出来相关内容后续GitHub更新,想冲击金三银四的小伙伴可...原创 2020-02-12 19:25:03 · 664 阅读 · 1 评论 -
带你手把手讲解一个复杂动效的自定义绘制
引子自定义View是android高级UI知识体系的重要一环。也是区分中高级开发者的分水岭。高级开发者,知识体系完善,但凡能够语言描述出来的特效,他们总能给出解决方案。而中级开发者由于眼界受限,往往遇到复杂需求就无从下手。一些看似复杂的特效,其实android已经为我们提供了一套解决方案,这是中级进阶高级的必学知识。本文给出完整攻略,保证一篇入魂。= =!(顺手留下GitHub链接,需...原创 2019-12-16 15:13:06 · 396 阅读 · 0 评论 -
通过AOP的思想 打造万能动态权限申请框架Demo完全解析
AOP优雅权限框架详解(以及更多面试题)https://github.com/xiangjiana/Android-MSgradle配置在project的 build.gradle 添加 aspectJ gradle插件 } dependencise { classpath 'com.android.tools.build:gradle:3.5.0' ...原创 2019-12-15 22:20:43 · 473 阅读 · 0 评论 -
Android Muitldex热更新修复方案原理
前言做程序开发,基础很重要。同样是拧螺丝人家拧出来的可以经久不坏,你拧出来的遇到点风浪就开始颤抖,可见基本功的重要性。再复杂的技术,也是由一个一个简单的逻辑构成。先了解核心基础,才能更好理解前沿高新技术。更多完整项目下载。未完待续。源码。图文知识后续上传github。可以点击关于我联系我获取正文大纲先看效果{github Demo地址}:(https://github.com...原创 2019-12-11 20:33:04 · 427 阅读 · 0 评论 -
分享一点关于Android屏幕适配的种种
引子屏幕适配是 android 开发/面试 绕不开的一个问题。本文 将屏幕适配的 知识要点完整展现给各位读者。正文大纲android需要做屏幕适配的原因基础知识点(很重要)屏幕适配攻略(更多完整项目下载。未完待续。源码。图文知识后续上传github。)更多完整项目下载。未完待续。源码。图文知识后续上传github。可以点击关于我联系我获取正文android需要做屏幕...原创 2019-12-10 16:36:27 · 287 阅读 · 0 评论 -
Android OkHttp, 一行代码 OkHttp提升请求稳定性
OkHttp是可以说是Android开发中,每个项目都必需依赖的网络库,我们可以很便捷高效的处理网络请求,极大的提升了编码效率。但是有时候,我们使用OkHttp也会遇到这样的问题一.崩溃的stacktrace E AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher E AndroidRuntime: Process: com.exampl...原创 2019-10-15 15:30:19 · 953 阅读 · 0 评论 -
手写消息总线LiveDataBus,让你永无后顾之忧
做了很久的面试专题,不知道对各位需要面试和有跳槽想法的小伙伴有没有帮助,今天收集一篇关于LiveDataBus方面的文章,面试方面的收集,后续我还会持续更新如果觉得有用可以点个关注Android四大组件和线程间通信方式有很多,比如Handler管道、广播、接口回调、rxBus、EventBus等,但是这些方式都存在一些瑕疵,(比如EvebtBus可能现在用的人比较少了,个人见解可以能算半个过...原创 2019-07-22 17:20:50 · 413 阅读 · 0 评论 -
2019Android74道高级面试合集(含BAT字节跳动等等)
前言最近半年,常常有人问我 “Android就业市场究竟怎么样,我还能不能坚持下去 ?”现在想想,移动互联网的发展不知不觉已经十多年了,Mobile First 也已经变成了 AI First。换句话说,我们已经不再是“风口上的猪”。移动开发的光环和溢价开始慢慢消失,并且正在向 AI、区块链等新的领域转移。移动开发的新鲜血液也已经变少,最明显的是国内应届生都纷纷涌向了 AI 方向。 可以说...原创 2019-07-05 16:54:01 · 556 阅读 · 0 评论 -
每日一道面试题,2019Android大型Bat面试知识分享
前言最近半年,常常有人问我 “Android就业市场究竟怎么样,我还能不能坚持下去 ?”现在想想,移动互联网的发展不知不觉已经十多年了,Mobile First 也已经变成了 AI First。换句话说,我们已经不再是“风口上的猪”。移动开发的光环和溢价开始慢慢消失,并且正在向 AI、区块链等新的领域转移。移动开发的新鲜血液也已经变少,最明显的是国内应届生都纷纷涌向了 AI 方向。 可以说...原创 2019-07-08 21:07:38 · 456 阅读 · 0 评论 -
BAT架构师花近十年时间整理的Android核心知识清单(Android岗)
整理了一份Android核心知识点。覆盖了底层开发,架构,性能优化,Flutter大量知识点。如果需要获取到这个【核心知识点整理】文档的话帮忙转发一下然后再关注我得到获取方式吧!如果需要获取到这个【核心知识点整理】文档的话帮忙转发一下然后再关注我查询主页获取领取方式...原创 2019-07-02 16:14:44 · 306 阅读 · 0 评论 -
Android 框架问题分析案例 - 谁杀了桌面?
写这篇文章的契机是因为一个实际遇到的问题 , 这个问题其实不难 , 不过在分析了这个问题然后写日记的时候 , 我突然觉得这个问题分析的过程有必要记录一下 , 分享给大家。分析过程中有用到一些工具 , 一些方法 , 也从另外一个聪明的小伙伴那里学到了一些分析技巧和工具的使用技巧这篇文章中分析过程包括我之前在 Android 中的卡顿丢帧原因概述 - 方法论 里面提到的一些工具 , 包括 : 复...原创 2019-09-19 14:52:42 · 1025 阅读 · 0 评论 -
2019最新中级Android面试题目,有着几篇就够了
注:因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解。1.组件化中路由、埋点的实现参考回答:因为在组件化中,各个业务模块之间是各自独立的, 并不会存在相互依赖的关系, 所以一个业务模块是访问不了其他业务模块的代码的, 如果想从 A 业务模块的 A 页面跳转到 B 业务模块的 B 页面, ...原创 2019-06-18 16:45:06 · 1245 阅读 · 0 评论 -
Android应用架构演变
引言总结了多年的移动开发经验,特别是在Android端的积累,以前认为从移动端APP谈架构,其实有点举大旗,因为大部份项目都在做业务理,且往往不是很大,并没有多复杂的数据处理或高并发(只针对个人而言);并且长期认为架构这个词,用在Web端或者大型系统里比较好一点,好的架构好,意味系统更稳健、高效率, 更大体量。总之,有种大材小用的感觉,然而,随着Android应用开发规模的扩大,客户端业务逻辑也...原创 2019-07-26 16:26:57 · 872 阅读 · 1 评论 -
开发过程中项目是否需要重构?又需要注意什么?
重构是需要慎重考虑的,不是拍脑子决定的事情!一、引言程序员都有一颗工程师的心,所以当他们到一片新的场地想做的第一件事就是,将旧的一切推倒重来。是的,他们觉得旧代码异常混乱,因为读代码更难,宁愿丢掉旧代码重新写,也不愿意修修补补,他们认为旧代码简直一团糟。我觉得这个出发点是好的,但我观察了非常多的案子,那些重构的项目大多数是失败的,相当一部份都成了烂尾。他们从头开始再写一遍并不意味着会写...原创 2019-08-01 19:11:56 · 767 阅读 · 0 评论 -
Android 纯音生成方法
因项目需要在 APP 中播放纯音,耳机测听的需求,了解在 Android 系统中,纯音播放有两种方式,一种是在程序中模拟出一个波形满足正弦波的音频数据,另一种就是事先准备好多个音频文件然后直接播放。若使用事先准备的音频,效果是可以达到(且可能更好),但需要准备各种分贝、频率的音频文件,算下来,要制作上百个,所以这里讨论通过程序模拟生成纯音。所有声音都是有正弦波组成,只不过纯音是固定频率的正...原创 2019-08-06 23:07:39 · 1186 阅读 · 2 评论 -
Android 高效开发之研发效能
在如今红海厮杀的移动互联网,快速试错变得越来越重要,敏捷开发也被越来越多的团队所推崇。有些时候为了效率我们甚至愿意牺牲部分性能,而选择在合适的时间去偿还这些“债务”。我们都希望在保证质量的前提下,为自己的团队提速。一、组织的研发效能1.1 何为研发效能在讨论如何优化组织研发效能之前,先思考一下什么是研发效能。我们平常开发的过程,是从产品的一个需求想法,转变为功能并且发布上线。这个过程...原创 2019-08-23 17:52:58 · 763 阅读 · 0 评论 -
Android 应用之安全开发
大佬:“这个 APP 破解下,可以兼容客户已出货的产品”我:“这个不合适吧”大佬:“这个客户对我们很重要”我:“好吧”然后,就是通过反编译某 APP ,分析蓝牙交互协议,在新的 APP 中去兼容已出货的设备,达到无缝对接。 –这种场景在开发中还是比较经常碰到的。一、引言随着移动互联网向社会生活的各个领域渗透,APP 的使用越来越广泛。但 Android 系统由于其开源的属性,市场...原创 2019-09-16 15:54:24 · 1511 阅读 · 0 评论 -
Kotlin 基础(二)- DSL
所谓 DSL 领域专用语言(Domain Specified Language/ DSL),其基本思想是“求专不求全”,不像通用目的语言那样目标范围涵盖一切软件问题,而是专门针对某一特定问题的计算机语言。Kotlin DSL 定义:使用 Kotlin 语言开发的,解决特定领域问题,具备独特代码结构的 API 。一、DSLDSL(domain specific language),即领域...原创 2019-09-20 14:49:37 · 389 阅读 · 0 评论 -
Flutter 开发之组件一
Flutter 的口号:一切谐为组件。同其他平台一样,Flutter 提供了一系列的组件,有基础组件(Basics Widgets),质感组件(Material Components)、Cupertino 等。Flutter 中基础组件的介绍,用法也比较简单。每个组件都是一个以类的形式存在。Flutter 的组件属性也很多,我们不可能记得每一项,只有经常使用或者了解一些关键属性,然后用到时...原创 2019-09-21 20:22:28 · 352 阅读 · 0 评论 -
Android 开发之路
因负责团队的管理工作,日常中也会接触面试工作,深切地感受到这两年移动开发潮的落幕,几个知名的培训机构(厦门,甚至福州,长沙)不再对移动开发招生,另外需求方也在减少,从原生的开发转向其他渠道分流。无论是准备入行或刚刚入行,还是比较资深的开发者,对于移动开发职业的未来,都有一些迷茫、一些焦虑。怀疑的声音渐渐大起来,“现在学习移动开发还有前景吗?”“移动开发还有什么可以研究的?”。一、引言移动...原创 2019-09-26 17:45:46 · 341 阅读 · 0 评论 -
2019最新Flutter 面试知识点集锦(一)
谷歌大会之后,有不少人咨询了我 Flutter 相关的问题,其中有不少是和面试相关的,如今一些招聘上也开始罗列 Flutter 相关要求,最后想了想还是写一期总结吧,也算是 Flutter 的阶段复习。系统完整的学习是必须需要的,这里只能帮你总结一些知识点,更多的还请查阅 Dart/Flutter 官网本篇主要是知识点总结,如有疑问可点击各文章链接了解详情,或者查阅我专栏Dart 部分...原创 2019-05-27 16:18:20 · 4456 阅读 · 1 评论 -
不知道这些你就OUT了,2019年最常见又实用的Android开发面试题
注:因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解。前言大部分开发者进入公司,一个必备的环节就是面试,只有通过面试,才能知道求职者是否符合公司的要求,也只有通过面试,求职者才能有幸进入到企业里工作,那么怎么才能提高面试的成功率呢?对于开发者而言,显然是技术的掌握水平,由于技术的面非常广,...原创 2019-07-01 15:57:33 · 342 阅读 · 3 评论 -
不得不看的Flutter与Android混合开发
记得在flutter刚出来时,笔者就开始学习flutter。但由于当时嫌弃flutter复杂的层级组合且未推出稳定版,所以当时就放弃了深入学习,现如今随着flutter的蓬勃发展及大佬们的力推,就又入坑flutter。虽说flutter能够跨平台,但由于现在几乎都是现成的项目,所以不可能用flutter来重头开发,所以目前几乎都是采用native+flutter的混合开发方案。那么该方案该如何...原创 2019-06-17 17:06:39 · 1301 阅读 · 2 评论 -
非常全面的Android 中高级工程师面试复习大纲
概述都说金三银四青铜五,这几个月份是程序员最好的跳槽时间,笔者四月初也换了工作。找工作之前看了很多面试题,复习资料,但是发现纯看面试题是不行的,因为靠背的东西是记不牢的,需要知识成体系才可以,所以笔者整理了一份复习大纲,基本涵盖了 Android 中高级工程师面试所必须知识点,希望可以通过此文帮助一些想换工作的朋友更好的复习,准备面试。本文只罗列出大纲内容,至于每个模块的详细内容,网上很多资料...原创 2019-05-28 17:20:08 · 442 阅读 · 0 评论 -
OpenCv + ffmpeg + rtmp 实现摄像头采集数据直播功能
采用OpenCv获取图像数据,通过ffmpeg推流给rtmp服务器OpenCV获取的图像数据为BGR格式,需要转换成YUV格式,再将其编码为h264格式,通过ffmpeg推流ps:ffmpeg版本是2.8头文件extern "C"{#include <libavcodec/avcodec.h>#include <libavdevice/avdevice.h>...原创 2019-05-28 16:40:13 · 3561 阅读 · 0 评论 -
多年心路历程见证从技术小白到收获BAT等大厂研发offer,分享一些经验和感悟
写在最前写过很多篇面试总结,这篇文章应该是最后一篇总结,当然也是最完整,最详细的一篇总结。算是人生中一段宝贵的经历,不仅是我研究生生涯交出的一份答卷,也是未来职业生涯的开端。仅以此文,献给自己,以及各位在求职路上的,或者是已经经历过校招的朋友们。不忘初心,方得始终。前言在下本是跨专业渣考研的985渣硕一枚,经历研究生两年的学习积累,有幸于2015秋季招聘中拿到几个公司的研发岗offer,...原创 2019-05-23 18:47:12 · 561 阅读 · 0 评论 -
2019,一位Android中级程序员成功跳槽的面经
在历时半个月,面试失败了9次以后,我拿到了满意的Offer,薪资同比增长50%不止。因为在一千多公司没有太大的开发压力,让我有更多的时间去学习Android的方方面面。在今年四月初,我花了一个周末Review简历,下定决心准备出去找工作。关于“互联网寒冬”这个现象,笔者一直是不愿意去相信的,因为他给我造成了焦虑,虽然它确确实实存在。现在回顾这次跳槽的经历,笔者想说的是:其实寒冬没有大家想象的...原创 2019-05-30 16:40:44 · 974 阅读 · 0 评论 -
Android DNS更新与DNS-Prefetch
一、什么是DNSDNS(Domain Name System,域名系统),dns用于将域名解析解析为ip地址。例如:给你www.baidu.com的主机名,你给我查出对应的ip地址:163.177.151.109。一些主机名还会有别名,如www.baidu.com就有别名www.a.shifen.com,甚至不止一个别名,或一个别名有2个ip地址。在linux机子上,运行nslookup...原创 2019-05-22 17:01:46 · 412 阅读 · 0 评论 -
面试的时候突然遇到答不上的问题怎么办?
前言今天给大家讲讲面试过程当中最长遇到的窘境,也是最能体现一个候选人临场应变能力的地方,那就是当我们在面试的过程当中,遇到的问题回答不上来的时候,该怎么办。误区在开始讲解之前,先纠正一个误区,那就是对于一场面试而言,最后的结果好坏并不完全取决于面试当中的问题是否都回答了上来。能不能录取和是否回答出所有问题并没有直接的联系。换句话说,我自己经历过的,无论是面试也好,还是面别人也罢,问题没答...原创 2019-05-22 16:25:05 · 8657 阅读 · 0 评论 -
八年Android开发心路历程
没有稳定的工作,只有稳定的能力。又到了万物复苏的季节,在程序猿这个行当里,作为 Android 开发出生的,在经历了八年的脱发生涯后,有了越来越多的想法和感触趋势随着各类移动跨平台的兴起,在 ReactNative 、Flutter 、Weex 等框架的加持下,Android 开发的能力已不再局限于 Android 领域,而各大厂商近些年也针对跨平台的不足进行逐步完善:ReactNa...原创 2019-05-22 15:32:11 · 280 阅读 · 0 评论 -
Android 使用RecyclerView实现轮播图
一、需求之前一篇博客使用ViewPager实现轮播图Android ViewPager实现循环轮播图,但是ViewPager有个天生的缺陷是View无法重用,此外ViewPager的滑动过程会频繁requestLayout,尽管可以通过addViewInLayout和removeViewInLayout配合PagerAdapter 的startUpdate和finishUpdate可以减少重绘,...原创 2019-05-24 17:41:05 · 3026 阅读 · 2 评论 -
再学Android之WebView
WebView最近一直在做web前端开发,做了预定酒店系统,后台管理系统,小程序等,正好趁机复习一下Android的WebView先简单介绍一下,Android在4.4之后采用了Chrome内核,所以我们在开发web页面的时候,es6的语法,css3的样式等大可放心使用我将分下面几个模块去介绍Android上面WebViewWebView自身的一些方法 //方式1. 加载一个网...原创 2019-06-12 16:25:48 · 559 阅读 · 0 评论 -
Android面试被问到内存泄漏了咋整?
前言内存泄漏即该被释放的内存没有被及时的释放,一直被某个或某些实例所持有却不再使用导致GC不能回收。Java内存分配策略Java程序运行时的内存分配策略有三种,分别是静态分配,栈式分配,和堆式分配。对应的三种策略使用的内存空间是要分别是静态存储区(也称方法区),栈区,和堆区。静态存储区(方法区):主要存放静态数据,全局static数据和常量。这块内存在程序编译时就已经分配好,并且在程序整...原创 2019-06-12 17:03:59 · 481 阅读 · 0 评论 -
互联网如今趋势,30岁的程序员如何应对?
不知从何时起,程序员似乎从脑力劳动者变成了体力劳动者,尤其是那批技术提不上去的程序员,年纪一来似乎就丧失了与年轻人竞争的机会。30岁看起来确是一道坎,人脉玩的好的已经当上了中层管理,技术钻的深的依旧无比吃香,只剩下那批没有野心混吃等死的程序员,他们真的开始慌了,被辞退的比比皆是,原因只是能力不再能匹配薪资!那么如何改变这个局面?一.请开始提高你的单位时间价值你可能曾经这么想过,如果我一个...原创 2019-06-06 14:40:18 · 250 阅读 · 0 评论 -
2019中级Android开发社招面试解答之性能优化篇
注:因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解。1.图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理?参考回答:首先我们要清楚图片的三级缓存是如何的如果内存足够时不回收。内存不够时就回收软引用对象2.内存中如果加载一张500X500的png高清图片.应...原创 2019-06-11 16:21:14 · 6204 阅读 · 1 评论 -
2019中级Android开发面试解答之线程篇
注:因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解。1.线程池的好处? 四种线程池的使用场景,线程池的几个参数的理解?参考回答:使用线程池的好处是减少在创建和销毁线程上所花的时间以及系统资源的开销,解决资源不足的问题。如果不使用线程池,有可能造成系统创建大量同类线程而导致消耗完内存或则...原创 2019-06-14 18:16:14 · 622 阅读 · 0 评论 -
android bitmap的缓存策略
在这篇文章中:1.lrucache2.disklrucache3.缓存策略对比与总结不论是android还是ios设备,流量对于用户而言都是宝贵的。在没有wifi的场景下,如果加载批量的图片消耗用户过多流量,被其知晓,又要被念叨一波~如何避免消耗过多的流量呢?当程序第一次从网络加载图片后,就将其缓存到移动设备上,这样再次使用这个图片时,就不用再次从网络上下载为用户节省了流量。目前...原创 2019-06-03 17:12:43 · 336 阅读 · 0 评论 -
Android高级开发-布局渲染流程与优化
扩展知识CPU(中央处理器)与GPU(图像处理器)主要是设计目标不同,针对不同的应用场景。多缓存多分支,适用于复杂的逻辑运算,主要负责Measure,Layout,Record,Execute的计算操作。CPU擅长逻辑控制和通用类型数据运算。CPU的运算速度取决于请了多么厉害的教授,教授处理复杂任务的能力高,但简单重复的任务,还是人多快。众核少缓存,适用于结构单一的数据处理,主要负责Rast...原创 2019-06-03 16:01:50 · 337 阅读 · 0 评论 -
2019中级Android开发面试解答之设计模式篇
注:因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解。1.你所知道的设计模式有哪些?参考回答创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十...原创 2019-06-13 16:50:38 · 804 阅读 · 0 评论 -
手写消息总线LiveDataBus
Android四大组件和线程间通信方式有很多,比如Handler管道、广播、接口回调、rxBus、EventBus等,但是这些方式都存在一些瑕疵,具体的优缺点如下:那么有没有一种通信方式可以集以上所有框架的优点于一身,并且避免以上缺点呢?答案就是作者今天要分享的livedatabus,livedatabus是基于原生的livedata实现的通信框架,它拥有以下的优点:首先我们来看一下Liv...原创 2019-05-29 17:06:21 · 387 阅读 · 0 评论