Android开发技术周报 Issue#67
新闻
-
在2015年年底,InfoQ曾提到Google已经决定在Android中使用OpenJDK,以取代基于Harmony实现的Java库。尽管这条消息在宣布时恰逢圣诞期间,但Google的这一决定还是在互联网上引起了很大的反响,我们将在本文中对于这些观点进行一次总结。
教程
-
ReactNative For Android 项目实战总结
Android Qzone 6.1版本在情侣空间涉水React Native,以动态插件方式将情侣空间进行React Natived的改造。在情侣空间基础上,Android Qzone 6.2版本以融合的方式将话题圈进行React Native改造。本文主要讲述话题圈的开发改造流程,相关数据对比及性能优化,本次改造ReactNative基于15Release。
-
在开发过程中,我们经常会遇到,各种跟窗口相关的类,或者方法。但是,在 Android 的框架设计中,到底什么是窗口?窗口跟 Android Framework 中的 Window 类又是什么关系?以手机QQ 的主界面为例,如下图所示,上面的状态栏是一个窗口,手机QQ 的主界面自然是一个窗口,而弹出的 PopupWindow 也是一个窗口,我们经常使用的 Toast 也是一个窗口。
-
Android 中有限状态机的设计和应用 主要内容有:有限状态机思想溯源,有限状态机的基本概念和编程思想,Android StateMachine 源代码解析,Android StateMachine应用实例
-
最近我负责开发了一个跟Android相机有关的需求,新功能允许用户使用手机摄像头,快速拍摄特定尺寸(1:1或3:4)的照片,并支持在拍摄出的照片上做贴纸相关的操作。由于之前没有接触过Android相机开发,所以在整个开发过程中踩了不少坑,费了不少时间和精力。这篇文章总结了Android相机开发的相关知识、流程,以及容易遇到的坑,希望能帮助今后可能会接触Android相机开发的朋友快速上手,节省时间,少走弯路。
-
让我们面对现实:移动设备上没有无限的内存、无限的电池或者其它无限的资源。这对应用而言意味着你应该把进程死亡作为应用生命周期的一个自然过程对待。最重要的是确保杀死进程及内存回收不会对用户造成负面影响。事实上,Android 中的多数进程架构都是为了确保特定的顺序而特别设计的,并按重要性层次遵循一组模式。
-
在 Android 开发中,你不应该做任何阻碍主线程的事情。但这究竟意味着什么呢?在这次海湾 Android 开发者大会讲座中,Ari Lacenski 认为对于长时间运行或潜在的复杂任务要特别小心。这一次演讲,我们将根据一个真实场景应用的需求,讨论 AsyncTask, Activity, 和 Service,逐步建立一个更易于维护的解决方案。
-
Android 6.0版本(Api 23)推出了很多新的特性, 大幅提升了用户体验, 同时也为程序员带来新的负担. 动态权限管理就是这样, 一方面让用户更加容易的控制自己的隐私, 一方面需要重新适配应用权限. 时代总是不断发展, 程序总是以人为本, 让我们为应用添加动态权限管理吧! 这里提供了一个非常不错的解决方案.
-
如何自定义Android注解? 目前基于注解的开源项目越来越热,Dagger, ButterKnife, Retrofit...很多热门的开源项目都用到了注解,如何才能像GitHub大牛那样优雅得使用注解呢?本文作者就给你一步步地演示,文末还有完整代码哟。
-
在Root前提下,我们可以使用Hooker方式绑定so库,通过逆向方式篡改数值,从而达到所谓破解目的。然而,目前无论是软件加固方式,或是数据处理能力后台化,还是客户端数据真实性验证,都有了一定积累和发展,让此“懒技术”不再是破解修改的万金油。再者,阅读汇编指令,函数指针替换,压栈出栈等技术需要一定技术沉淀,不利于开发同学上手。
-
在这篇文章,我们来讨论一下基于Android系统多缓存文件方式截屏的一些事。《 破解之道(一)》开篇介绍了基于Root环境截屏的技术,使用这种方式获取屏幕数据是快捷而便捷的。然而,大家先不要开心太早,此中却有两个系统级问题,很少有文章涉猎讨论,在此向大家详细解说一下。
-
本文章有些例子需要对Java或Android有一定编程基础。与Python相比,Java是一门比较严肃的语言。作为一个先学Python的程序员,做起Android难免会觉得不舒服,有些死板,非常怀念decorator等方便的方法。为了实现一个简单的逻辑,你可能需要写很多额外的代码。
-
在Android中,Bitmap的存储分为两部分,一部分是Bitmap的数据,一部分是Bitmap的引用。在Android2.3时代,Bitmap的引用是放在堆中的,而Bitmap的数据部分是放在栈中的,需要用户调用recycle方法手动进行内存回收,而在Android2.3之后,整个Bitmap,包括数据和引用,都放在了堆中,这样,整个Bitmap的回收就全部交给GC了,这个recycle方法就再也不需要使用了。
-
如何学习 Android Animation? 动画可以做成什么样子(第1类)下述几篇博文通过如下3个方面向开发者展示『动画』:给出一些指导原则,阐述为什么要如此做动画,或者这样的动画有什么好处;给出 GIF 动图,直观地展示动画是什么;给出实现这种动画的代码片段(关键类、方法、资源文件)或者实现思路;这非常棒,可以帮助我们很快建立动画的印象,了解某个名词代表的动画是什么样子,应该怎么去实现。而且代码片段很多是从开源项目中摘录的,意味着我们可以调试这些动画。
-
质量从用户反馈很清凉然后我们就只能看 CPU 原来的想法是但是事实上不是这些但是我们可以把数据收集上来,从长远角度来说,我们呢很简单,怎样摆脱这种要辞职的想法,那我能去哪,要干啥,任何团队都有一定的问题,如果他走,我觉得我还可以接受缺一个告警什么叫我们的团队当时是Android 开发现在陷入了困境(快陷入七年了…)。
-
Android 开发人员为项目选择库的时候,考虑的因素不仅仅是功能、可用性、性能、文档丰富度和技术支持情况。他们还关心库的大小,以及要添加的方法数量。因为项目越大,依赖也越多,要把应用的方法数量控制在65k 以下,开发人员感觉很有压力。另外,对于非发行版项目而言,Proguard 使用起来效率太低,而且开发人员视 multidex 如瘟疫,避之唯恐不及。因此,编写库的作者必须特别注意项目的大小。
-
在手机App竞争越来越激烈的今天,Android App的各项性能,如CPU、内存消耗等都有了客观的衡量指标。但对于App使用过程是否流畅,一直没有一个可靠的指标将用户的客观感受和数据一一对应。虽然之前有FPS(每秒帧数)作为游戏或视频类App的性能指标,但对于那些界面更新不多的App来说,仍不是一个合适的衡量数据。
-
从Android 3.0开始,Google引入了全新的Fragment UI体系,重新诠释了可复用可延展的Android UI设计理念。Android Support Library更是为任何面向低版本Android的应用开发者提供了完整的Fragment后向兼容方案(backport)。所以,如果开发一款新的Android应用,使用Fragment已无需有任何顾忌。尽早拥抱这一强大的机制设计,可以帮你省下可观的开发和维护工作量。
开源库&项目
-
圆点交替扩大效果的进度条
-
一款可用于给 Android 应用添加用户引导视图的库
-
在 AppCompat Design Library 的基础上提供了额外的控件:AccountHeaderView、FloatingActionMenu、CircleImageView、FlexibleToolbarLayout, Delightful Detail Drawables 和 TypefaceCompat
-
一个简单的 ORM 库
-
带进度条的 FloatingActionButton
-
仿微信实现的朋友圈
-
AndroidLintPlus 定制 Lint 规则
-
不要拿来干坏事
-
效果很赞
工具
-
图片压缩命令行工具, 使用教程
-
统计方法个数的插件
-
适用于 IDEA 和 Android Studio 的代码配色方案
视频
-
罗升阳大神的分享,不容错过
技术之外
-
看看你周围有这样的人没
-
是段子还是现实
版权声明:欢迎自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
来自: http://www.androidweekly.cn/android-dev-weekly-issue-67/