Android开源项目源码解析html
由@Trinea发起的Android开源项目源码解析项目,目前已校对发布的分析有:Volley源码解析、Android Universal Image Loader源码分析、Dagger源码解析、EventBus 源码解析、xUtils源码解析、ViewPagerindicator源码解析、HoloGraphLibrary源码解析、CircularFloatingActionMenu源码解析、PhotoView 源码解析、Android Lock Pattern源码解析以及公共技术点:Java动态代理、Java注解Annotation、View绘制流程、依赖注入和View时间传递等。java
Android最佳性能实践(一)——合理管理内存android
有很多朋友都问过我,怎样才能写出高性能的应用程序,如何避免程序出现OOM,或者当程序内存占用太高的时候该怎么样去排查。确实,一个优秀的应用程序,不只仅要功能完成得好,性能问题也应该处理得恰到好处。为此,我也是阅读了很多Android官方给出的高性能编程建议,那么从本篇文章开始,我就准备开始写一个全新系列的博文,来把这些建议进行整理和分析,帮助你们可以写出更加出色的应用程序。git
深刻解析Android的自定义布局github
这篇文章是前Firefox Android工程师(如今跳槽去Facebook了) Lucas Rocha所写,文中对Android中经常使用的四种自定义布局方案进行了很好地分析,并结合这四种Android自定义布局方案所写的示例项目讲解了它们各自的优劣以及四种方案之间的比较。看完这篇文章,也让我对Android 自定义布局有了进一步的了解,因而趁着兴头,我把它翻译成中文,原文连接在此。数据库
巧用Drawable 实现Android UI 元素间距效果编程
在大部分的移动UI或者Web UI都是基于网格概念而设计的。这种网格通常都是有一些对其的方块组成,而后它们组合成为一个块。使用网格这样的设计原则能够有助于对齐UI元素,提高UI的一致性,同时还能让用户更加容易的获取UI上面包含的内容。简而言之,网格是一个至关的强大的设计工具。浏览器
模块化的乐趣性能优化
模块间的紧耦合是一种很糟糕的设计,而耦合的最坏表现就是模块间的循环依赖。幸运的是,有几种方法能够用来消除循环依赖,分别是回调函数,代码上移,代码下移。 接下来,我会为你们展现一个小例子。示例中,我会分别使用上述几种技术来消除循环依赖。多线程
你的Android应用彻底不须要那么多的权限
Android系统的权限从用户的角度来看有时候的确有点让人摸不着头脑。有时候可能你只须要作一些简单的事情(对联系人的信息进行编辑),却申请了远超你应用所需的权限(好比访问全部联系人信息的权限)。这很难不让用户对你保存戒备。
Android App 性能优化实践
本文从工具、布局优化、代码、View的绘制、电量、和Apk的大小等几个方面记录了Android App优化须要用到的工具和以及在实践中的Tips。
复杂的软件必须有清晰合理的架构,不然没法开发和维护。MVC(Model-View-Controller)是最多见的软件架构之一,业界有着普遍应用。它自己很容易理解,可是要讲清楚,它与衍生的 MVP 和 MVVM 架构的区别就不容易了。
接前一篇文章<使用Android Studio查看Android Lollipop源码> , 咱们知道,仅仅看代码,提升是比较有限的,并且理解起来也比较肤浅,每每过目就忘. 而本身写过的代码,每每会印象比较深入,在写的时候也会比较容易理解流程. 因此咱们在看代码的同时, 若是能修改代码, 在手机上跑起来并看到修改的效果,这无疑会加快看代码的效率和积极性.
常常有这样的应用场景,咱们须要Client端调用Service完成一些事情,Service也能够经过回调通知客户端。
这篇文章介绍经过Gradle把开源项目发布到公共仓库JCenter中,方便你我他的事情,咱们都是很懒的嘛。JCenter如今是Android Studio中repositories的默认节点了,以前是Maven的,不过JCenter是兼容Maven的,因此放心使用。
Material Design的兼容实现,支持Android 2.1+。
一个ORM框架,核心功能:
图案密码解锁库。
能够显示Gif动画的自定义View。
JavaCPP provides efficient access to native C++ inside Java, not unlike the way some C/C++ compilers interact with assembly language. No need to invent new languages such as with SWIG, SIP, C++/CLI, Cython, or RPython as required by cppyy. Instead, it exploits the syntactic and semantic similarities between Java and C++. Under the hood, it uses JNI, so it works with all implementations of Java SE, in addition to Android, Avian, and RoboVM (instructions).
Genius-Android 是 Android 中一些经常使用的的方法集合, Genius 提供6个基本板块:app(Ui)、animation(动画)、widget(Material控件)、command(命令行)]、net tool(Ping、Dns...)、util(经常使用方法,类)等。
5+ Runtime是DCloud推出的HTML5强化引擎,性能和功能都大幅领先phoneg*p,可使用JS调用40W原生API,能够在低端机上流畅运行。点击视频观看低端机上如何流畅运行App。http://download.dcloud.net.cn/FastAndroid-mini.m4v 也可直接下载App在手机上体验:
功能演示:http://dcloud.io/helloh5/ UI演示:http://dcloud.io/hellomui/
对ViewPager进行了扩展,支持垂直切换page、垂直无限切换page、水平无线切换page和便可以垂直又能够水平无限切换page,支持ndroid 2.1.x (API 7) +系统。
一个自定义的,向后兼容的Material Design风格的Preference实现。
模仿Android Lollipop Contacts滚动效果的容器View。
一个Android平台的事件总线框架, 它简化了Activity、Fragment、Service等组件之间的交互,很大程度上下降了它们之间的耦合,使得咱们的代码更加简洁,耦合性更低,提高咱们的代码质量。
添加了对单元测试的支持以及修复了一些Bug。
gradle-eclipse-aar-plugin
一个可让你在Eclipse中使用Android AAR格式库的Gradle插件。
一个代码片断搜索工具。
本课程带领你们更加深刻地学习Java多线程机制,深刻理解建立线程的两种方式之间的差别,掌握线程的生命周期和守护线程的概念。
本课程将带领你们实现个性的ViewPager切换动画,首先介绍经过PageTransformer结合ViewPager.setPageTransformer来实现动画效果,而后教你们如何让其兼容到3.0之后,其中会涉及到属性动画等知识点;最后将介绍经过自定义ViewPager的方式来实现动画切换效果。
Android应用的卡顿问题很是突出,全部用户都能感受获得却又很难作量化卡顿的严重程度,过去的作法只是零星地发现和解决一些小点。DAU超亿级的UC浏览器在卡顿优化的过程当中创建了一套衡量卡顿严重性的数据指标与监控分析机制,并藉此有针对性地落实了200+个性能优化点。这里会介绍卡顿监控与分析的方法、常见的卡顿案例与缘由。