当你拿到一台崭新的Mac电脑时,我们应该如何快速高效配置开发环境? 当你拿到一台崭新的mac电脑做为工作开发电脑时,需要从0搭建开发环境。本文记录了工作中如何在Mac电脑上快速配置环境,同时安利一些高效的开发工具和搭建指南。
2020年Android面试高频知识点小结V1.0 正直2020金九银十,每一次换工作或是面试候选人,我们都会对面试知识做一次总结梳理,毕竟开发技术无边界,不同人对技术的解读不同。文章总结了最近大半年中的面试考查点V1.0,希望对你有所帮助。
从面试角度聊聊ConcurrentHashMap的理解 面试中常常问到Hashmap原理,这属于第一阶段的过招,之后面试官可能会顺势问一下,Hashmap是否是线程安全的。连环问于是开始了,如果你回答不是,那么紧接着面试官会问有没有什么数据结构可以保证线程安全。有一定研究的你可以会马上联想到有,比如`ConcurrentHashMap`。好戏开始上演……
谈谈对java中synchronzied的理解 synchronized在平时开发中和面试中常常会用到,深入了解并总结一下对synchronized的认识是有必要的,不同时期结合不同的运用场景的运用,往往会有不同角度的认识。本文总结了synchronized的三个常用经典用法。
Android性能优化之LeakCanary的使用及项目中的实际运用 Andorid项目中我们会使用第三方的开源库来检查内存泄露情况,使用时我们得了解其运行原理并根据扩反馈日志来指导解决问题。文本从结合内存泄露原理和在项目中的实际的使用场景来解决开发的实际问题。
LeetCode之面试题 : 栈的最小值 LeetCode之面试题:请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。
Android架构之路(2)-组件化开发规范总结 文本总结了Android开发小组在组件化迭代升级思考总结 ,在组件化的运用过程中,遇到问题后我们是如何解决并实践的。并以此总结了组件化在移植到其他项目时约定的组件化开发规范,希望对你有所帮助。
你了解Android LMK机制么? 上文主要介绍了Andorid内存的管理机制,本文对其中的LMK机制进行深入扩展总结。我们知道出现Crash应用闪退和崩溃一般有三个原因:ANR(程序无响应)、Exception(异常)、LMK(低内存杀死机制)。本文重点介绍LMK机制。目的:了解LMK原理,探究进程保活的方案和程序异常处理的方法。
Android开发对内存管理的学习总结 Android开发中,对内存的管理至关重要,平时除了看其他人总结的对内存的总结,我们也得回到第一手资料上去看看知识的源头上,看看是如何对内存做介绍的。本文是根据第一手资料做的总结,记录于此,方便今后(不翻墙)快速查阅。
为什么听过很多道理,依然过不好这一生? 记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
RecycleView中使用总结以及在项目中的实际运用场景总结(持续更新) RecycleView的问世,替代了ListViewt和GridView,性能得到提升。同时也出现了许多优秀的第三方开源库。本文总结了在实现项目中是如何运用RecycleView的场景,以及总结了项目中使用时的一些心得,希望对你有所帮助。
Android自定义View以及在项目中的实际运用(持续更新) 本文总结了自定义View的三种实现方式,并结合项目实际运用做了一个小结。分别实现了自定义文本电话号码输入框、自定义标题栏、自定义圆形倒计时进度条。
Android架构之路 (1)——Android客户端与服务器的数据交互总结 本文总结了Android客户端与服务器进行交互时,采用RESTful API +Json的交互方式,针对不同的数据形式以及不同的解析方法,如有不足之处,欢迎指正。
当我们敏捷开发时,引入Scrum Master后我们是怎么做的 本文总结了开发团队中,在引入Scrum Master角色后在团队中是如何做的,以及在一个版本迭代后的复盘总结。方便今后在工作中随时查阅,希望对你有所帮助。
Git使用规范(Android版) 本文根据Git分支管理策略,结合Git Flow分支管理实践,制定了这个适合Android开发中的Git版本管理规范。同时结合实际操作演示了使用示例,希望对你有所帮助。
Android 性能优化之界面优化 Android的性能优化是一个持续持续的过程,以发现问题、解决问题或者是组织Code Review为推动力去实施。性能优化涉及到的方面很多,比如启动优化、卡顿优化、内存优化、界面布局优化、稳定性优化、耗电优化、安装包大小优化等等。性能优化是每个开发者都需要关注的功课,本文从界面布局优化做一个总结。
也谈谈CodeReview Talk is cheap. Show me the code.So, Let’s go!一个注重技术规范和分享的团队,往往会做好Code review工作,在紧张的项目之余,为了后期的效率和技术上的提高,我们需要引入Code review。本文是第一次准备Code Review时查阅了大量相关资料,整理总结形成本文,后期的博客中会记录第一次Code review的实例。希望对你有所帮助。
Android设计模式之外观模式在项目中的实际使用总结 外观模式在开发中使用频率非常高。我们常常使用的第三方和开源库 基本都会使用外观模式。通过一个外观类使得整个系统的接口只有一个统一高层接口,这样利于降低用户的使用成本,也对用户屏蔽了很多实现细节,项目更容易维护。在使用第三方SDK和开源库时,可能最大的使用思想就是封装,封装第三方的API,同时可能还会用到其他设计模式如策略模式,方便随时替换第三方SDK。本文会从理论和实践进一步深入总结外观模式在项目中运用。
Android设计模式之策略模式在项目中的实际使用总结 策略模式在开发中也常常用到,当实现某一个功能时如支付功能时,支付功能可以有多种实现方式,比如微信支付、支付宝支付、一网通支付。再比如实现分享时也可以有多种策略,可以分享到QQ、微信、微博等社交平台。在众多的实现方式中,可以将功能中涉及到的通用方法或策略提取出来,提供一个统一的接口,不同的算法或者策略有不同的实现类,这次在程序客户端就可以通过注入不同的实现对象来实现算法或者策略的动态策略,这种模式的可维护性、或扩展性更好。这就是本文要介绍的策略模式。
Android设计模式之观察者模式在项目中的实际使用总结 观察者模式在Android开发中使用频率非常高,最常用的地方如订阅–发布系统,类似微信公众号用户订阅和接收消息的场景,因为这个模式最重要的功能就是解耦,将被观察者和观察者解耦,使得它们之间的依赖性更小,甚至没有依赖。本文会继续将理论与实践结合,深入设计模式的总结。
Android设计模式之单例模式在项目中的运用 单例模式(Singleton Pattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最常用、最易被识别出来的模式。本文会重点总结一下Android开发中常用的单例模式场景,理论与实践结合,深入学习设计模式,从而提高大家的开发水平,完美解决开发中遇到的类似问题。
Android设计模式之模板方法模式在实际项目的运用(封装BaseActivity) 在项目中,常见的 BaseActivity 的封装就用到了设计模式中的模板方法模式和抽象工厂模式,本文重点介绍模板方法模式是什么、Android源码中如何体现、以及我们在项目中是如何使用封装成BaseActivity的。
Android中网络请求框架的封装-Retrofit+RxJava+OkHttp okGo项目由于没有维护,性能有点跟不上。现在的主流网络请求框架基本上都选用的是retrofit公司项目原来使用的是OkGo网络请求框架,后来全部替换为retrofit。本文重点介绍一下retrofit的封装与项目中实际使用。
设计模式篇开篇(一)设计模式、设计原则与记忆方法 设计模式的总结有助于构建软件开发知识体系,为后期软件的架构设计、重构打下夯实基础,所以开设了Android设计模式专栏,后期会投入一定的精力深入学习和总结设计模式,并把相关理论知识与实际项目中用到的设计模式结合起来记录于此,敬请关注和交流。 本文重在总结设计模式和设计原则,后期会结合具体实例代码来说明常用的设计原则和设计模式。
Rx全家桶之RxJava学习总结 文章目录RxJava到底是什么?RxJava有什么好处?基本概念:RxJava中的各种操作符号RxJava的应用场景1.与Retrofit的结合2.RxBinding3.各种异步操作4.RxBus总结RxJava到底是什么?先看RxJava在GitHub上的解释:(截止目前为止:最新版本2.2.8)RxJava – Reactive Extensions for the JVM – a l...
Android设计模式之Builder模式在实际项目的运用 Android设计模式之Builder模式在实际项目的运用背景Builder模式是一种设计模式,Android源码中AlertDialog就是使用Build设计模式,这种模式的主要特点就是链式的,方便使用者的调用,使用者无需关心内部如何实现就可以方便调用。为什么要用?首先了解一下定义:建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过...
Android平台招商银行“一网通”支付对接采坑记 公司最近的App中需要做支付功能,支付中需要支持微信支付、支付宝支付、一网通支付。本文主要记录在对接Android平台中的“一网通”过程中遇到的坑,如果有类似需求的朋友,可供你参考。
Kotlin中函数与闭包在实际项目中使用小结 Kotlin中函数与闭包在实际项目中使用小结Android开发中,常常会遇到在一个项目遇到多个判断登录状态后才能执行相应的操作,那么在kotlin中如何比较优雅的实现登录状态检测呢?文章目录1.相关概念:1.1 不带参数的函数作为形参1.2 带参数和返回值的函数作为形参2.实际项目中运用的小栗子这里我们就会用到kotlin中一个知识点:高阶函数与闭包1.相关概念:高阶函数:以另一个函...
Android 中打包成aar并上传到Nexus搭建的maven仓库 目的方便组件化流通,搭建私有库有助于多人协作开发项目,提高集成的稳定性和库引用版本的可控性,也减少繁琐的第三方库的发布工作。环境搭建下载 安装Nexus–>配置环境,启动服务器(请自行百度,本文略)修改localhost为电脑的ip (方便在局域网上查看)制作aar在Android Studio(AS)中新建module,写测试的接口,供打包成aar,方便项目...
Android 中打包成aar并上传到Nexus搭建的maven仓库 目的方便组件化流通,搭建私有库有助于多人协作开发项目,提高集成的稳定性和库引用版本的可控性,也减少繁琐的第三方库的发布工作。环境搭建下载 安装Nexus–>配置环境,启动服务器(请自行百度,本文略)修改localhost为电脑的ip (方便在局域网上查看)制作aar在Android Studio(AS)中新建module,写测试的接口,供打包成aar,方便项目...
Android招聘心得分享 最近因为工作需要,需要招聘Android开发人员,简单聊一下面试候选人的一些想法,希望对你有帮助。1.简历篇:拉勾和51job的选择,简历大家投简历或是发布招聘信息,还是以IT类的专业招聘网为主,建议拉勾(不是打广告哈),在面试的邀约和后期的保持联系联系中方便得多。不要乱投不符合的岗位,这样浪费大家时间。在准备简历时,不要在简历中写得大而全,面试岗位一定在明确,最好不要跟面试官说我走的...
清单革命之Android开发中必备的代码Review清单小结 导读Android开发中养成良好的习惯尤为重要,大脑按照一定的思考模式系统思考会降低错误的发生率。老罗曾推荐《清单革命》,可以让工作更调条。万事万物皆有套路。基于此,我向大家推荐一下Android开发中的代码检查清单,请大家多指教,后期我会不断完善Android开发清单革命。注:以下转自:https://www.jianshu.com/p/4b65967fe4a0 ...
App架构设计经验谈 1. App架构设计经验谈:接口的设计App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉。1.1 安全机制的设计现在,大部分App的接口都采用RESTful架构,RESTFul最重要的一个设计原则就是,客户端与服务器的交互在请求之间是无状态的,也就是说,当涉及到用户状态时,每次请求都要带上身份验证信息。实现上,大部分...
Android 消息机制——你真的了解Handler? 导读:Android 消息机制几乎贯穿整个Android整个思想,程序的运行是靠消息机制来维持的,消息机制的重要性不言而喻。看了很多关于Handler的文章,本文的思考和总结角度新颖,看了有豁然开朗的收获,故收藏分享于此。本文转自: https://blog.csdn.net/qian520ao/article/details/78262289前言Questions1. L...
Android开发之深入浅出分析Rxjava Android 目前流行开发框架中可谓是Rxjava家族如火如荼。本文重点讲解一下Rxjava的入们教程,行文通俗易懂,初学者不容错过。 前言Rxjava由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。Github截图本文主要:面向 刚接触Rxjava的初学者提供了一份 清晰、简洁、易懂的Rxjava入门教程涵盖 基本介绍、原理 &...
如何衡量一个Android应用开发人员的能力? 公司招人时需要做需求说明书,以当前公司为例子,Andorid小组需要招人,整理了一下需求说明书。稍后补上。招聘说明书 包含了工作中的技术要求,技术背景,工作合作态度等。目的在于初步筛选,后期面试中 会根据此做进一步了解,找到一个符合要求的候选人。需要一个衡量人能力的标准,这个标准不仅适用于招聘,同样也适用于考核、职等评定等,我叫这种标准为技能树。 这里所说的技能树,不仅包含技...
Android NDK开发从入门到放弃小结 工作中曾做过一断时间音视频监控类的应用,涉及到NDK开发。NDK开发平时写代码中也会常常用到,如用到第三方的视频剪辑类SDK、友盟统计、qqbugly统计,或多或少都会用到。本文就对自己工作中用到过的NDK的一些经验套路做一些总结和分享,希望对你有所帮助。
如何优雅的实现Android 屏幕适配方案 前言一个月前看了今日头条新的屏幕适配方案,这是传送门,对此不禁拍案叫绝,为此我想把这种方案融入到我工具类中直接一行代码即可适配,如今最新 1.18.0 版 AndroidUtilCode 已有其适配方案,其相关函数在 ScreenUtils 中,相关 API 如下所示:adaptScreen4VerticalSlide : 适配垂直滑动的屏幕adaptScreen4HorizontalSl...
Kotlin在实际项目中的使用小结 本文总结了开发中的实用小技巧,不断完善中,如有不足,请指出完善。 1.Lazy Loading(懒加载)延迟加载有几个好处。延迟加载能让程序启动时间更快,因为加载被推迟到访问变量时。 这在使用 Kotlin 的 Android 应用程序而不是服务器应用程序中特别有用。对于 Android 应用,我们自然希望减少应用启动时间,以便...
Android音视频开发播放器总结 本文针对Android开发中的音视频播放器,做个小结,方便大家在项目中根据需要做个参考。android-UniversalMusicPlayergithub上目前start 10K多,Google的官方播放器,demo展示了如何去开发一款音频媒体应用,该应用可跨多种外接设备使用,并为Android手机,平板电脑,Android Auto,Android Wear,Android ...
Kotlin学习笔记之集合的操作 Kotlin学习笔记系列:http://blog.csdn.net/column/details/16696.html关于集合的操作符,直接引用书上的内容,基本上总结的很好了。vallist= listOf(1,2,3,4,5,6)drop返回包含去掉前n个元素的所有...
如何快速开发一个自己的微信小程序 一.写在前面1.为什么要学小程序开发? 对于前端开发而言,微信小程序因为其简单快速、开发成本低、用户流量巨大等特点,也就成了前端开发工程师必会的一个技能。 2.先看看小程序效果(1)欢迎页 (2)首页:轮播头...
Android关于沉浸式状态栏总结 一、前言其实我是不打算写这篇文章的,为什么呢?因为关于沉浸式状态栏的文章太多了,随便google一下就能出来几十上百篇文章,当然这其中有写的好的,也有滥竽充数的。前面在公众号推出了Material Design 的系列文章,就有读者留言,希望出一篇关于沉浸式的文章。因此这篇文章就整理总结一下各个版本的实现原理,顺便为大家推荐一个我觉得很方便的一个库。二、沉浸式的一般套路在介绍这个方便的轮子之...
那些年,Android音视频开发那些事儿 那些年我所经历的音视频开发那些事音视频开发的主要应用有哪些?音频播放器,录音机,语音电话,音视频监控应用,音视频直播应用,音频编辑/处理软件,蓝牙耳机/音箱,等等1.视频监控类 (JNI+应用层开发) 从硬件到嵌入式再到软件,涉及开发全面,从硬件数据采集,到中间服务器转发、再到上层终端软件渲染播放。涉及开发太多,Android端涉及到NDK 、JNI层的开发 2.播放...
Android开发之Kotlin使用心得总结 Android开发之Kotlin使用心得总结1.什么是kotlin?为什么要用kotlin 2.环境使用 3.总结一下kotlin中的语法特点 4.对比java特点盘点 5.在项目中使用情况
Android 2018优秀开源框架整理收藏 程序员界有个神奇的网站,那就是github,这个网站集合了一大批优秀的开源框架,极大地节省了开发者开发的时间,在这里我进行了一下整理,这样可以使我们在使用到时快速的查找到,希望对大家有所帮助!
一个优秀的研发团队应该具备什么特征 1、计划执行:计划安排得当,不要老加班,不要老是现实和计划不匹配。不要做到哪儿计划就推后到哪儿。2、研发成果:成功产出几个重影响力级别的、完整成块的、有成就感自豪感的产品或项目3、团队氛围:这个团队每个人都相处的很融洽4、团队协作:每个人都能找到自己擅长并喜欢做的事情。团队允许发出不同声音,不打击不反击。团队允许各种性格和背景的人都能存在并融洽存在。5、团队协作:团队不要造成老是关...
技术总监和CTO的区别 浅谈CTO的作用----软件公司如何开源节流 我一直在思考软件公司如何开源节流。当然,老板也在思考开源节流。 当然,老板思考的开源节流在公司运营层面上,而我作为CTO,我考虑的则是在产品运营角度上来思考这个问题。否则,一个软件公司,它的生存与发展就是靠软件产品,除此之外没有别的收入来源,那么作为负责产品的人再觉得没有责任思考这个关乎公司盈利与发展的问题,那么要把这个问题甩给天天忙销售忙资金忙公司管理的老板么?那要你这个CTO干吗?难道就...
关于App重构的一些思考 开发之初,可能会由于时间紧,任务重,人员技术技术特点,不同开发人员各种飘技术栈,人员之间代码冗余,再加上遵循公司“快速上线”原则,为完成功能而开发。后期由于业务功能迭代,出现了牵一发而动全身的问题,代码维护困难,耦合性太强,于是乎重构迫在眉睫。
Git常规使用笔记及注意事项了解一下 1.先在Git中仓库建立可在github中或码云中搭建 或自己搭建服务器注意设置忽略上传的文件 过滤掉一些文件或文件夹,那么被过滤的内容就不会被git管理,比如: build/: 过滤整个build文件夹; *.class: 过滤所有.class后缀的文件; path/to/local.properties: 过滤具体文件 .gi...
Android开发之测试相关的技能了解一下 本文的目的在于总结Android开发中(手机和TV端)常常会用到的一些测试相关的知识,在此梳理,不足之处,还请指出完善。先了解一下测试的基础1.功能测试(黑盒测试)大多的开发程序 以功能测试就能解决开发中的问题,适合公司以快速上线为原则的迭代需求。通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。2.白盒测...
关于开发流程及团队规范化的一些经验总结 关于开发流程及团队规范化的一些经验总结一、开发前: 开发模式采用敏捷流程极限编程模式(XP). 计划任务:根据市场客户需求了及现有的开发能力制定版本迭代周期和开发需求,如两 到三周一次版本发布,再后期推动中不断修正。 1. 需求:由项目经理或产品经理编写需要说明书(PRD),让测试和开发明确开发需求(用户故事)。 2. 估算工时:先由各模块的开发组长根据开发人员的技术特点...
《5分钟商学院》笔记之消费心理学 死磕自己成长一百天第2天 今天继续分享刘润老师的《5分钟商学院》笔记,今天主要学习了消费心理学的几个概念以及生活中的作用举例。 第一个:心理账户 我们内心会把生活开销分门别类,比如衣食住行,育儿,健康,投资,娱乐,情感维护等。这些账户是独立的。我们会给每个账户不同的心理承受的开销额度。 运用: 了解对方心理账户的额度,把你的产品和服务与他最看重,最愿意花钱,或者有足够额度的账户产生联系。...
《5分钟商学院》--读书笔记 死磕自己100天成长笔记第1天 《5分钟商学院》—读书笔记 近来在读刘润的《5分钟商学院》,全套共四册,分别为《个人篇》《工具篇》《管理篇》《商业篇》。读来干货满满,作者刘润就是以输出为导向, 倒逼自己对自己的工作 学习做了很好的经验总结,以直播讲座出书等形式来输出自己。其中最大的感悟就是以经济学思想, 衡量做事的价值,其中有四个关键点:时间、 成本、 风险 、收益。衡量任何一件事的价值所在,...
Android中的线程和线程池的使用及封装使用总结 相关线程知识先扩充一下: 主线程和子线程 主线程(也叫UI线程):在java中默认情况下一个进程只有一个线程,这个线程就是主线程。其主要作用是处理和界面交互相关的逻辑,主线程不能做太多耗时的操作,否则会产生界面卡顿的感觉。为保持较快的响应速度,子线程就出场了。 子线程:也叫工作线程,除了主线程之外的都是子线程。基本用途:主线程是运行四大组件及处理它们和用户的交互,子线程处理耗时的任务,如...
github上十二款最著名的Android播放器开源项目 1.ijkplayer项目地址: https://github.com/Bilibili/ijkplayer 介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API 易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电;提供 Android 平台下应用弹幕集成的解决方案。
音视频开发入门基础及视频会议即时通讯开源技术选择 1.[雷神总结]视音频编解码技术零基础学习方法2.视频会议十大开源项目排行在视频会议领域,有许多可以值得参考的开源项目,这些开源项目有的是协议栈、有的是编码器或者是传输协议,由于视频会议系统是一个综合性的应用系统,里面包含功能较多,如能把这些开源项目选择性的加入我们的视频会议开发当中,我们的开发效率肯定会事半功倍,下面我们列举一下视频会议相关的十大开源项目,并对其重要性及优缺点做一个全面的评价与排名。
Android TV中按键事件和焦点处理总结 1.KeyEvent事件keyEvent:源码位于android.view下,包装管理所有按键有关输入的事件体系,KeyEvent和MotionEvent的分发流程一样,都是InputEvent的子类,都是从Activity开始的,KeyEvent主要有以下事件类型:KeyEvent.KEYCODE_DPAD_UP; 上 KeyEvent.KEYCODE_DPAD_DOWN; 下 K
2017年网络中比较全面的Android面试题 网络中比较全面的面试题 来源于网络,收集整理于此。详情请点击: https://github.com/JackyAndroid/AndroidInterview-Q-A?utm_source=gold_browser_extension提纲: java基础 接口的意义-百度 抽象类的意义-乐视 内部类的作用-乐视 父类的静态方法能否被子类重写-猎豹 java排序查找算法-美团 列举
Android TV开发 开源项目收集 Android TV和Android手机开发的主要区别在于焦点的控制和焦点效果的不同。 以下是开发过程中收集到的开源项目,记录于此,与大家分享一下.焦点放大,切换,边框处理,适配问题等。
第一篇技术博客(从0到1) 2017年已经到来,今年定个小目标,开始写博客, 把从事开发工作以来,自己总结的技术心得与大家做一个分享,希望大家多交流。关键词:Android 、iOS 、音视频、React Native 、Kotlin、产品 、创业目录暂定如下(后续完善):(1)Android 音视频开发 、IPTV智能机顶盒、 网上商城App开发中问题总结(2)iOS对比Android中的技术点,...