Android开发技术周报 Issue#19

教程

  1. Android开源项目源码解析

    @Trinea发起的Android开源项目源码解析项目,目前已校对发布的分析有:Volley源码解析、Android Universal Image Loader源码分析、Dagger源码解析、EventBus 源码解析、xUtils源码解析、ViewPagerindicator源码解析、HoloGraphLibrary源码解析、CircularFloatingActionMenu源码解析、PhotoView 源码解析、Android Lock Pattern源码解析以及公共技术点:Java动态代理、Java注解Annotation、View绘制流程、依赖注入和View时间传递等。

  2. Android最佳性能实践(一)——合理管理内存

    有不少朋友都问过我,怎样才能写出高性能的应用程序,如何避免程序出现OOM,或者当程序内存占用过高的时候该怎么样去排查。确实,一个优秀的应用程序,不仅仅要功能完成得好,性能问题也应该处理得恰到好处。为此,我也是阅读了不少Android官方给出的高性能编程建议,那么从本篇文章开始,我就准备开始写一个全新系列的博文,来把这些建议进行整理和分析,帮助大家能够写出更加出色的应用程序。

  3. 深入解析Android的自定义布局

    这篇文章是前Firefox Android工程师(现在跳槽去Facebook了) Lucas Rocha所写,文中对Android中常用的四种自定义布局方案进行了很好地分析,并结合这四种Android自定义布局方案所写的示例项目讲解了它们各自的优劣以及四种方案之间的比较。看完这篇文章,也让我对Android 自定义布局有了进一步的了解,于是趁着兴头,我把它翻译成中文,原文链接在此

  4. 巧用Drawable 实现Android UI 元素间距效果

    在大部分的移动UI或者Web UI都是基于网格概念而设计的。这种网格一般都是有一些对其的方块组成,然后它们组合成为一个块。使用网格这样的设计原则可以有助于对齐UI元素,提升UI的一致性,同时还能让用户更加容易的获取UI上面包含的内容。简而言之,网格是一个相当的强大的设计工具。

  1. 模块化的乐趣

    模块间的紧耦合是一种很糟糕的设计,而耦合的最坏表现就是模块间的循环依赖。幸运的是,有几种方法可以用来消除循环依赖,分别是回调函数,代码上移,代码下移。 接下来,我会为大家展示一个小例子。示例中,我会分别使用上述几种技术来消除循环依赖。

  2. 你的Android应用完全不需要那么多的权限 
    Android系统的权限从用户的角度来看有时候的确有点让人摸不着头脑。有时候可能你只需要做一些简单的事情(对联系人的信息进行编辑),却申请了远超你应用所需的权限(比如访问所有联系人信息的权限)。这很难不让用户对你保存戒备。
  3. Android App 性能优化实践 
    本文从工具、布局优化、代码、View的绘制、电量、和Apk的大小等几个方面记录了Android App优化需要用到的工具和以及在实践中的Tips。
  4. MVC,MVP 和 MVVM 的图示

    复杂的软件必须有清晰合理的架构,否则无法开发和维护。MVC(Model-View-Controller)是最常见的软件架构之一,业界有着广泛应用。它本身很容易理解,但是要讲清楚,它与衍生的 MVP 和 MVVM 架构的区别就不容易了。

  5. 为Nexus5编译AndroidL固件

    接前一篇文章<使用Android Studio查看Android Lollipop源码> , 我们知道,仅仅看代码,提高是比较有限的,而且理解起来也比较肤浅,往往过目就忘. 而自己写过的代码,往往会印象比较深刻,在写的时候也会比较容易理解流程. 所以我们在看代码的同时, 如果能修改代码, 在手机上跑起来并看到修改的效果,这无疑会加快看代码的效率和积极性.

  6. 与Sevice实现双向通信系列

    经常有这样的应用场景,我们需要Client端调用Service完成一些事情,Service也可以通过回调通知客户端。

  7. 使用Gradle发布项目到JCenter仓库

    这篇文章介绍通过Gradle把开源项目发布到公共仓库JCenter中,方便你我他的事情,我们都是很懒的嘛。JCenter现在是Android Studio中repositories的默认节点了,之前是Maven的,不过JCenter是兼容Maven的,所以放心使用。

代码&开源库

  1. Carbon

    Material Design的兼容实现,支持Android 2.1+。

  2. RushOrm

    一个ORM框架,核心功能:

    • 自定义字段 - 轻松实现定制字段,以便任何对象都可以被序列化到数据库
    • 表关系
      • 一对一
      • 一对多
      • 保存一个父对象会自动保存与之相关关联的子对象
    • 文件 - 轻松的保存长文本, JSON and bitmaps
    • 升级 - 数据库升级支持通过注解去删除和重命名列名。
  3. android-patternview

    图案密码解锁库。

  4. gif-movie-view

    可以显示Gif动画的自定义View。

  5. JavaCPP

    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).

  6. Genius-Android

    Genius-Android 是 Android 中一些常用的的方法集合, Genius 提供6个基本板块:app(Ui)、animation(动画)、widget(Material控件)、command(命令行)]、net tool(Ping、Dns...)、util(常用方法,类)等。

  7. 5+ Runtime

    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/

  8. freepager

    对ViewPager进行了扩展,支持垂直切换page、垂直无限切换page、水平无线切换page和即可以垂直又可以水平无限切换page,支持ndroid 2.1.x (API 7) +系统。

  9. Android-MaterialPreference

    一个自定义的,向后兼容的Material Design风格的Preference实现。

  10. CollapseOnScroll

    模仿Android Lollipop Contacts滚动效果的容器View。

  11. AndroidEventBus

    一个Android平台的事件总线框架, 它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使得我们的代码更加简洁,耦合性更低,提升我们的代码质量。

工具

  1. Android Studio 1.1 Beta 4

    添加了对单元测试的支持以及修复了一些Bug。

  2. gradle-eclipse-aar-plugin 
    一个可以让你在Eclipse中使用Android AAR格式库的Gradle插件。
  3. Codota

    一个代码片段搜索工具。

视频

    1. 细说多线程之Thread VS Runnable

      本课程带领大家更加深入地学习Java多线程机制,深入理解创建线程的两种方式之间的差异,掌握线程的生命周期和守护线程的概念。

    2. 千变万化的ViewPager切换动画

      本课程将带领大家实现个性的ViewPager切换动画,首先介绍通过PageTransformer结合ViewPager.setPageTransformer来实现动画效果,然后教大家如何让其兼容到3.0以后,其中会涉及到属性动画等知识点;最后将介绍通过自定义ViewPager的方式来实现动画切换效果。

    3. android应用卡顿优化实践-何杰

      Android应用的卡顿问题非常突出,所有用户都能感觉得到却又很难做量化卡顿的严重程度,过去的做法只是零星地发现和解决一些小点。DAU超亿级的UC浏览器在卡顿优化的过程中建立了一套衡量卡顿严重性的数据指标与监控分析机制,并藉此有针对性地落实了200+个性能优化点。这里会介绍卡顿监控与分析的方法、常见的卡顿案例与原因。

时间: 2024-10-07 17:20:45

Android开发技术周报 Issue#19的相关文章

Android开发技术周报 Issue#69

新闻 Android N或取消应用抽屉 设计更趋近iOS 设计也在进化 对升级速度忍无可忍 谷歌或将收回安卓控制权 坑否 Google为手表App开发者推出了Google Play Services中国特别版 看起来很美好 Google发布J2ObjC 1.0:将Java转换为Objective-C 黑科技 2020年的Android系统会是什么样? 可能是非常酷的 教程 Android开发:最详细的 Toolbar 开发实践总结 详解有图有代码 Facebook如何采集其Android应用性能

Android开发技术周报 Issue#66

好消息,Android 开发技术周报开通了邮件订阅,赶快来订阅吧,订阅请戳我戳我戳我,还有还有现在也可以推荐资源给Android开发技术周报了,推荐资源请戳我戳我戳我 新闻 在 Google 看来,应用商店都将消亡,而搜索永存 搜索才是王道,让用户在 Google 搜索结果里直接安装 App 教程 Android Scroller完全解析,关于Scroller你所需知道的一切 郭神新作,详解 Scroller Android应用安全开发之源码安全 实用 APK 反调试技巧 如何自学Android

Android开发技术周报 Issue#27

教程 Android开发技术前线第五期 (@MrSimp1e) 深入Android图形管道.Romain Guy的性能优化案例.图片加载框架Glide.模仿iOS的模糊视图,都是些不错的文章. Android内存优化之MAT工具使用教程系列 (@高建武_Gracker) 正所谓工欲善其事,必先利其器,在对Android应用进行内存优化MAT(Memory Analyzer Tool)是一把必不可少的利剑,MAT一个基于Eclipse的内存分析工具,是一个快速.功能丰富的JAVA heap分析工具

Android开发技术周报 Issue#64

教程 AndroidFlux-异步请求和网络 在移动开发中,异步网络操作必不可少,本篇着重介绍在Flux模式中如何处理异步操作的问题,并深入一些细节,比如如何在异步操作时显示异步状态.另外,网络操作仅仅是异步操作的一种,最后扩展ActionCreator的语义来处理更多的业务逻辑. Tricking Android MemoryFile MemoryFile是android在最开始就引入的一套框架,其内部实际上是封装了android特有的内存共享机制Ashmem匿名共享内存,简单来说,Ashme

Android开发技术周报 Issue#24

教程 细数Android系统那些DOS漏洞 Android系统存在一些漏洞可导致系统重启,当然让系统重启只是一种现象,这些漏洞有的还可以权限提升.执行代码等.本文以重启这个现象为分类依据,牵强的把这些漏洞放在一块来看.下面对这些漏洞的成因和本质进行简单的分析,并尽量附上编译好的poc和漏洞利用演示视频. Android安全系列 此系列包含:Android Activtity Security.Android Content Provider Security.Android Broadcast

Android开发技术周报 Issue#67

新闻 OpenJDK将对Android开发产生怎样的影响? 在2015年年底,InfoQ曾提到Google已经决定在Android中使用OpenJDK,以取代基于Harmony实现的Java库.尽管这条消息在宣布时恰逢圣诞期间,但Google的这一决定还是在互联网上引起了很大的反响,我们将在本文中对于这些观点进行一次总结. 教程 ReactNative For Android 项目实战总结 Android Qzone 6.1版本在情侣空间涉水React Native,以动态插件方式将情侣空间进行

Android开发技术周报 Issue#17

ART运行时垃圾收集(GC)过程分析 ART运行时与Dalvik虚拟机一样,都使用了Mark-Sweep算法进行垃圾回收,因此它们的垃圾回收流程在总体上是一致的.但是ART运行时对堆的划分更加细致,因而在此基础上实现了更多样的回收策略.不同的策略有不同的回收力度,力度越大的回收策略,每次回收的内存就越多,并且它们都有各自的使用情景.这样就可以使得每次执行GC时,可以最大限度地减少应用程序停顿.本文就详细分析ART运行时的垃圾收集过程. 如何调试 Android 上 HTTP(S) 流量 在And

Android开发技术周报 Issue#15

教程 Android Studio系列教程五--Gradle命令详解与导入第三方包 Android Studio + Gradle的组合用起来非常方便,很多第三方开源项目也早都迁移到了Studio,为此今天就来介绍下查看.编译并导入第三方开源项目的方法. 打造极致Material Design动画风格Button 在我的文章中曾经有两篇关于Material Design风格的按钮实现.在第一章中只是简单的实现了动画的波纹效果,而在第二篇中对此进行了一定的扩充与优化,最后实现可以自动移动到中心位置

Android开发技术周报 Issue#21

教程 Android模块化编程之引用本地的aar 随着项目越来越多,代码的复用就变得异常重要,这时候就要进行模块化编程,就是把一些通用的组件或者类库做成单独的模块,其他项目直接进行引用就好.针对Android开发最常见的就是Android Library,在Gradle出现之前引用Android Library的方式也很繁琐,但是有了Gradle一切变得非常简单方便. 微信的jsbridge实现 android的webview api中有开放过一个addJavaScriptInterface函数