Android开发技术周报 Issue#29

d3fw 9年前

教程

  1. Android内核解读-应用的安装过程 (慕课网android学习小组)

    我们知道,在android手机上安装一个apk很简单,只要打开apk文件,默认就会弹出安装界面,然后点击确定,经过若干秒后,apk就安装成功了,可是你知道apk的安装过程是什么吗?你知道android系统在安装一个apk的时候都干了什么吗?在本文中,将一一解答这个问题。简单来说,apk的安装过程分两步:第一步,将apk文件复制到程序目录下(/data/app/);第二步,为应用创建数据目录(/data/data /package name/)、提取dex文件到指定目录(/data/dalvik-cache/)、修改系统包管理信息。

  2. 给半新人的app开发指南 (@hamber_罗)

    此文献给那些需要的人,不定期更新~

  3. [译]Instagram是如何提升TextView渲染性能的 (@archieyang)

    在IG中,feed是由图片,视频和文字组成的。对于每个图片和视频,我们需要展示对应的图片说明和5条最近的评论。由于用户通常通过图片说明来讲书图片背后的故事,这些图片说明通常是大段复杂的文字,甚至可能包含链接和emoji表情。

  4. 拿到一份开源项目,快速定位感兴趣的功能代码 (@drakeet)

    现在越来越多的开源项目了,令人收藏不暇,有时只是觉得对方的某个 feature 特别喜欢,但很多人可能打开了其代码找了半天找不到关键所在。其实,如果运用了 Android Studio 带给我们的一些查找功能,任何一份新的开源代码摆在我们眼前,我们都可以快速定位到感兴趣的功能代码。

  5. 安卓中的Model-View-Presenter模式介绍 (@泡在网上编代码)

    这是一篇安卓中MVP模式的详细教程,从最简单的例子到最佳实践。本文还介绍了一个让在安卓中使用MVP模式变得非常简单的library。它是不是很简单,我们如何才能从中获益?什么是MVP?View是指显示数据并且和用户交互的层。在安卓中,它们可以是一个Activity,一个 Fragment,一个android.view.View或者是一个Dialog。

  6. Android加载不同DPI资源与内存消耗之间的关系 (@Syleee)

    Android 设备在物理尺寸和屏幕密度上都有很大的不同,为了简化多设备的设计方案,就是设定一套分级标准。屏幕密度上的分级标准就是:LDPI、MDPI、 HDPI、XHDPI,也就是各种大小的 DPI(Dots per inch)。DPI 就是屏幕像素密度的衡量标准。

  7. 携程App的网络性能优化实践 (@InfoQ)

    在4月23日~25日举行的QCon全球软件开发大会(北京站)上,携程无线开发总监陈浩然分享了《移动开发网络性能优化实践》,总结了携程在 App网络性能优化方面的一些实践经验。在2014年接手携程无线App的框架和基础研发工作之后,陈浩然面对的首要工作就是App客户端性能优化,尤其是网络服务性能,这是所有App优化工作的重中之重.

  8. 常见Android Native崩溃及错误原因 (@DroidSec安卓安全中文站)

    Android上的Crash可以分两种:1、Java Crash java代码导致jvm退出,弹出“程序已经崩溃”的对话框,最终用户点击关闭后进程退出。Logcat 会在“AndroidRuntime”tag下输出Java的调用栈。2、Native Crash 通过NDK,使用C/C++开发,导致进程收到错误信号,发生Crash,Android 5.0之前进程直接退出(闪退) , Android 5.0之后会弹“程序已崩溃”的对话框。

  9. Java字节码忍者禁术 (@InfoQ)

    ava语言本身是由Java语言规格说明(JLS)所定义的,而Java虚拟机的可执行字节码则是由一个完全独立的标准,即Java虚拟机规格说明(通常也被称为VMSpec)所定义的。JVM字节码是通过javac对Java源代码文件进行编译后生成的,生成的字节码与原本的Java语言存在着很大的不同

  10. AppCompat 22 新特性 (@makohill)

    构建一个可以跑在不同版本 Android 平台的软件,是非常复杂和耗时的。为了解决这个问题,Android 推出了 Android Support Library (安卓兼容包),让新的UI控件也可以跑在早期的 Android 版本。最近Android Support Library 更新到v22.1,这一版本主要AppCompat做了一些大的调整。

  11. Android 深入理解Android中的自定义属性 (慕课网android学习小组)

    对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现:1.自定义一个CustomView(extends View )类 2.编写values/attrs.xml,在其中编写styleable和item等标签元素 3.在布局文件中CustomView使用自定义的属性(注意namespace)4.在CustomView的构造方法中通过TypedArray获取.

  12. Android.mk详解

    Android.mk文件用来向编译系统描述如何编译你的源代码。更确切地说,该文件其实就是一个小型的Makefile。由于该文件会被NDK的编译工具解析多次,因此应该尽量减少源码中声明变量,因为这些变量可能会被多次定义从而影响到后面的解析。

代码&开源库

  1. loadtoast (@泡在网上编代码)

    默认的toast很丑,而且也没有真正提供显示短暂消息的功能。这个库能为toast显示动画反馈,显示到选择按钮或者删除按钮的过度动画。而且toast 的生命周期是完全取决于你的。

  2. WechatLikeBottomTabUI (@伍业雄)

    抄袭微信Android6.0版本底部菜单渐变效果.

  3. squidb (@安卓同学)

    Yahoo 开源的 SQLite 数据库框架,它支持ORM,面向对象语句语言(类似JOOQ)和数据库管理工具,轻量级,同时具有高性能,具体介绍请看Wiki.

  4. android-kotlin-samples

    kotlin例子库。

  5. 带壳截图

    这是一个为手机截屏而服务的图片合成工具,基于 Device Frame Generator 开源项目二次开发。它可以为平淡无奇的截屏图片套上等比例的手机设备外框,生成一张媲美广告的渲染图。

视频

  1. Android Performance Patterns : Season 2 (@陈启超_V)

    带头大哥Colt即将带来《Android Performance Patterns : Season 2》有Bitmap的最佳实践,迭代器性能以及如何使用LINT等。

新闻

  1. 谷歌准备Android Wear重大更新

    谷歌今天宣布将为Android Wear推出重大更新,让Android手表使用更加容易。目前大多数Android智能手表默认都采用省电模式的表盘界面,但是,有时用户需要默认获得其它信息,Android Wear更新之后,现在将允许用户选择默认始终显示信息的应用程序,比如地图位置或者购物清单等。

来自:http://www.androidweekly.cn/android-dev-weekly-issue29/