201801-29 2018 年初值得关注的 25 个新 Android 库和项目 这是我最新收集的25个Android库和项目列表,你也许会发现它们有用,有趣,并值得查看一下。所有的都在最近3个月发布的,排序不分先后。开始查阅吧!1.transitionerTransitioner是一个为两个拥有嵌入子视图的视图之间提供简便、动态且可调整的动画效果的库。它纯 100%使用Kotlin编写而成,使用MIT许可,且拥有良好的文档。该库支持API19及以上的SDK版本,而且在项目中也包含了用... 继续阅读 >
201801-16 Android 内存暴减的秘密?! WeTest导读在我这样减少了26.5MJava内存!一文中内存优化一期已经告一段落,主要做的事情是,造了几个分析内存问题的轮子,定位进程各种类型内存占用情况,分析了线程创建OOM的原因。当然最重要的是,优化了一波进程静息态的内存占用(减少26M+)。而二期则是在一期的基础之上,推进已发现问题的SDK解决问题,最终要的是要优化进程的动态Java内存占用!通常来说不管是做什么性能优化,逃不出性能优化3步曲:... 继续阅读 >
201801-03 Android跨进程IPC通信AIDL 简介AIDL:AndroidInterfaceDefinitionLanguage,即Android接口定义语言,用于生成Android不同进程间进行进程通信(IPC)的代码,一般情况下一个进程是无法访问另一个进程的内存的。如果某些情况下仍然需要跨进程访问内存数据,这时候Android系统就要将其对象分解成能够识别的原数据,编写这一组操作的代码是一项繁琐的工作,但是AIDL对底层进行了抽象的封装,简化了跨进程操作。在Android中跨进程操作的方式不止一种,... 继续阅读 >
201712-28 记一次公司的Android分享会 前言我刚来这个公司的时候,每个周三都会有分享会,主题自定,分享对象尽量是面向大众,一开始觉得不错,但是到后面发现分享的内容不是那么有营养,而且积极性不是很高,都是当做任务进行分享。程序员因为较为腼腆,分享的人较少,大部分都是客户部、分析部或者推广部的分享,久而久之,氛围就比较消极。为了提高咱们程序员发言的积极性,增添技术部的沟通氛围,决定之前的分享形式不变,但是改为月末一次,技术部的分... 继续阅读 >
201711-29 Android换肤原理和Android-Skin-Loader框架解析 Android换肤技术已经是很久之前就已经被成熟使用的技术了,然而我最近才在学习和接触热修复的时候才看到。在看了一些换肤的方法之后,并且对市面上比较认可的Android-Skin-Loader换肤框架的源码进行了分析总结。再次记录一下祭奠自己逝去的时间。换肤介绍换肤本质上是对资源的一中替换包括、字体、颜色、背景、图片、大小等等。当然这些我们都有成熟的api可以通过控制代码逻辑做到。比如View的修改背景颜色setBackgrou... 继续阅读 >
201711-22 「Android」Bolts-更简单的完成线程调度和任务管理 使用Bolts可以将一个完整的操作拆分成多个子任务,这些子任务可以自由的拆分、组合和替换,每个任务作为整个任务链的一环可以运行在指定线程中,同时既能从上行任务中获取任务结果,又可以向下行任务发布当前任务的结果,而不必考虑线程之间的交互。Bolts-AndroidBolts在Android下的实现Bolts-ObjCBolts在OC下的实现Bolts-SwiftBolts在Swift下的实现前言一个关于线程调度的简单需求,在子线程从网... 继续阅读 >
201710-25 我学习Android的一些套路 今天我将给大家分享一下我学习Android的一些方法和想法,分享中并不局限于Android哪一块怎么学习。而是一个总体的,普适性的学习套路和方法。希望可以帮助大家解决一些问题。注意本文为知乎Live底稿,知识点相对分散,后面部分包含了一些听众提出的问题,但是不影响总体的阅读和理解。Android需要打好哪些编程基础Java基础(Kotlin)(参考技能树http://olabqc6d8.bkt.clouddn.com/Java_skill_tree.png)O... 继续阅读 >
201708-19 Android内存泄漏思考 Android内存泄漏是一个经常要遇到的问题,程序在内存泄漏的时候很容易导致OOM的发生。那么如何查找内存泄漏和避免内存泄漏就是需要知晓的一个问题,首先我们需要知道一些基础知识。Java的四种引用强引用:强引用是Java中最普通的引用,随意创建一个对象然后在其他的地方引用一下,就是强引用,强引用的对象Java宁愿OOM也不会回收他软引用:软引用是比强引用弱的引用,在Javagc的时候,如果软引用所引用的对象被回... 继续阅读 >
201707-23 最全面Android 导航模式解析 任何在用户界面模拟载体移动的场景便是导航。使用应用程序将两个用户屏幕连接到一起,便是一种导航。这个连接——无论它是什么——即是用户用来运送信息的载具。尽管创建一个导航很简单,但是去创造一个适当的导航并不容易。本文我们将研究一些Android上最常用的导航模式,解读它们是如何影响底层导航,如何正确的使用这些模式让它来符合用户的需求。1定义导航在看一些常见导航模式之前,先回顾一下关于软件... 继续阅读 >
201707-15 Android开发周报:微信模块化重构实践、滴滴插件化项目开源 新闻7月份安卓各版本份额:牛轧糖终于突破两位数:谷歌近日给出了安卓系统各版本最新的份额数据,去年推出牛轧糖版本(7.0,7.1)终于达到了两位数的市场份额,占11.5%。2015年推出的棉花糖仍然占据统治地位,市场份额达31.8%,之后是棒棒糖,也高达30.1%。《谷歌暗示:Android8.0系统正式版即将到来》:从谷歌发布信息来看,谷歌会于本月底推送Android8.0的最后一个开发者预览版,此版本将接近于最终正式版... 继续阅读 >
201703-10 Android Studio,使用技巧,问题记录和一些好用的插件 使用技巧根据不同buildType使用不同包名和资源比如在production,development,qa不同阶段使用不同的packageName和authority,在build.gradle中配置如下:productFlavors{production{applicationId="com.myapp.app"resValue"string","authority","com.facebook.app.FacebookContentProvider5435651423234"}development{applicationI... 继续阅读 >
201701-03 我的 Android 开发实战经验总结 以前一直想写一篇总结Android开发经验的文章,估计当时的我还达不到某种水平,所以思路跟不上,下笔又捉襟见肘。近日,思路较为明朗,于是重新操起键盘开始码字一番。先声明一下哈,本人不是大厂的程序猿。去年毕业前,就一直在当前创业小团队从事自己热爱的打码事业至今。下面总结是建立在我当前的技术水平和认知上写的,如有不同看法欢迎留下评论互相交流。1.理解抽象,封装变化目前Android平台上绝大部分开发都是用着Ja... 继续阅读 >
201611-24 50个安卓开发者应该熟悉的Android Studio技巧和资源 本文列举出一些可以提高整体效率的AndroidStudio技巧和资源。显然有太多太多这方面的东西,但是为了文章的简洁性,我把它限制在50个以内,希望你能喜欢!视觉效果1.AndroidLogcat的Material颜色主题。要改变AndroidStudio的Logcat你需要这样做:进入Preferences(Windows上是Settings/Linuxmachines)→Editor→Colors&Fonts→AndroidLogcat,然后为每种类型的log设置前景颜色(foreground... 继续阅读 >
201611-21 APP启动慢怎么办,Android官方这样说 这篇文章从干货总量方面不如第一篇,而且一连发了两篇类似文档,总感觉没有进步与新意。但是后来琢磨了一下,这篇质量也不差,APP启动时间也是此次项目我新碰到的一个点,估计也有相当多的同学碰到这个问题。之前并没有太在意这个点,网上也已经有比较好的文章来解决这个问题。但是还是跟第一篇的原因类似,官方的文章还是从原理上分析的比较好, 不仅授之以鱼,还授之以渔 。所以还是想翻过来分享给大家,希望多指教,... 继续阅读 >
201611-10 Android里巧妙实现缓存 为了快速查询会被多次调用的数据,或者构建比较废时的实例,我们一般使用缓存的方法。缓存的基本概念大体上差不多,这里就不再重复,有兴趣的可以查看维基百科的介绍。缓存有很多的实现方式,技巧性还有坑都很多,今天我给大家介绍一些非通用的方法,可以巧妙地帮大家简单实现一些内存缓存。Supplier和MemoizeSQLite是Android里常用的一种数据存储方式,在访问数据库数据时需要通过SQLiteOpenHelper。一份好的数据库连接代码... 继续阅读 >
201611-07 一个 2 年 Android 开发者的 18 条忠告 我仍记得2014年我决定做安卓开发的那天,这是我一生中做出的最好决定之一。到现在已经有2年半了,最初的时候,并没有人告诉我如何做才是正确的。我犯了很多错误,浪费了很多时间。 一年半之后,我有机会和一个真正有才而且经验丰富的安卓开发者一起工作,他指导我,教我正确的做事方式。这期间我学到了很多东西,学会了该做什么不该做什么。我直接或者间接帮助其它开发者也有很长一段时间了。这里是我的StackOverflow和G... 继续阅读 >