Android博客周刊第60期
jzed4573
8年前
<p><strong>新闻</strong></p> <h2><a href="/misc/goto?guid=4959747000773308782" rel="nofollow,noindex">1.Google希望Android开发人员更加了解颜色</a></h2> <p>颜色选择对于开发人员来说至关重要。它决定了您的应用程序或网站的可用性,以及任何文本的可读性。考虑到这一点,Google已经更新了其材料设计指南当中的颜色部分,并引入了一个新工具,帮助设计师和开发人员在这方面提升自己的能力。</p> <h2><a href="/misc/goto?guid=4959747000866876316" rel="nofollow,noindex">2.发布半年 谷歌Android 7.0/7.1采用率仍不到5%</a></h2> <p>据科技博客PhoneArena北京时间4月7日报道,在正式发布近6个月后,Android“牛轧糖”系统看起来难以成为谷歌的主导移动平台。不过,鉴于老版Android“棒棒糖”系统在市场中的份额依旧最大,这就没有什么好惊讶的了。</p> <p><strong>国外博客</strong></p> <h2><a href="/misc/goto?guid=4959747000945214471" rel="nofollow,noindex">1.Make a moving Gradient Background in Android</a></h2> <p>This is a quick tutorial on how to make a moving gradient background on Android.</p> <h2><a href="/misc/goto?guid=4959747001029885236" rel="nofollow,noindex">2. Kotlin 1.1 is also for Android Developers</a></h2> <p>All the new Kotlin features are available for Java 6 and, as an extension, for Android developers. Antonio Leiva shows some of them.</p> <h2><a href="/misc/goto?guid=4959747001102336481" rel="nofollow,noindex">3. Drawable Animation in Android</a></h2> <p>Animation by displaying each drawable from sequence of drawables for certain duration can be achieved in Android using AnimationDrawable.</p> <h2><a href="/misc/goto?guid=4959746864063269804" rel="nofollow,noindex">4. How We Made the ToolBar on Android Move Like Jelly</a></h2> <p>Here's a nice toolbar animation in Kotlin.</p> <h2><a href="/misc/goto?guid=4959746864231006602" rel="nofollow,noindex">5. Testing MVP using Espresso and Mockito</a></h2> <p>In this post by Josias Sena you'll lean how to test a model view presenter architectore using espresso and mockito.</p> <p><strong>国内博客</strong></p> <h2><a href="/misc/goto?guid=4959747001265270924" rel="nofollow,noindex">1.Android App包瘦身优化实践</a></h2> <p>随着业务的快速迭代增长,美团App里不断引入新的业务逻辑代码、图片资源和第三方SDK,直接导致APK体积不断增长。包体积增长带来的问题越来越多,如CDN流量费用增加、用户安装成功率降低,甚至可能会影响用户的留存率。APK的瘦身已经是不得不考虑的事情。</p> <h2><a href="/misc/goto?guid=4959747001345485541" rel="nofollow,noindex">2.浅谈对于mp3文件中VBR对比CBR的一些基本差异</a></h2> <p>从比特率编码方式的角度来看,目前其中一种最常见的音频文件格式MP3,可以再分为两种类型:一种是恒定比特率CBR(Constant Bit-Rate),这种类型的mp3每一帧的比特率都是恒定唯一的.</p> <h2><a href="/misc/goto?guid=4959747001433395955" rel="nofollow,noindex">3.McImage插件解析</a></h2> <p>McImage是一个对资源中的png和jpg图片进行压缩和图片大小检查的插件,通过pngquant算法对图片资源进行压缩,并且可以设置图片最大大小来在打包时候对所有图片资源进行检查。如果发现大于设置的大小,默认为1M,那么就会中断打包,并且提示是哪张图</p> <h2><a href="http://liwenkun.me/2016/12/05/how-android-apps-get-system-services/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io" rel="nofollow,noindex">4.安卓应用获取系统服务的过程</a></h2> <p>在安卓系统中存在着各种各样的系统服务, 例如 ActivityManagerService, WindowManagerService, ClipboardService 等。这些系统服务大都运行在进程 system_server 中,为每个应用提供服务。而应用程序运行于自己的默认进程当中,因此,想要获取系统服务,必定需要进行进程间的通信。</p> <h2><a href="/misc/goto?guid=4959747001593905693" rel="nofollow,noindex">5.使用JNI实现Sobel算子图像边缘检测</a></h2> <p>图形边缘检测是图像处理的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。边缘检测算子分为两阶: 一阶:Sobel算子,Roberts Cross算子, Prewitt算子, Canny算子,罗盘算子 二阶:Marr-Hildreth,在梯度方向的二阶导数过零点。</p> <h2><a href="/misc/goto?guid=4959746839036226722" rel="nofollow,noindex">6.经典随机Crash之一:线程安全</a></h2> <p>Android QQ 在2016下半年连着好几个版本二灰 Crash 率都很高,如果说有新需求,一灰的 Crash 率高,还能找点理由,可是开发童鞋解过一灰的 Crash 单后,为啥二灰还有这么高的 Crash 率.</p> <h2><a href="/misc/goto?guid=4959747001704393715" rel="nofollow,noindex">7.loadLibrary动态库加载过程分析</a></h2> <p>动态库操作,所需要的头文件的#include, 最为核心的方法如下:而对于android上层的Java代码来说,都封装好了, 只需要一行代码就即可完成动态库的加载过程,如下:接下来,解析这行代码背后的故事.</p> <h2><a href="/misc/goto?guid=4959747001794742029" rel="nofollow,noindex">8.ART深度探索开篇:从Method Hook谈起</a></h2> <p>Android上的热修复框架 AndFix 想必已经是耳熟能详,它的原理实际上很简单:方法替换——Java层的每一个方法在虚拟机实现里面都对应着一个ArtMethod的结构体,只要把原方法的结构体内容替换成新的结构体的内容.</p> <h2><a href="https://mp.weixin.qq.com/s?__biz=MzAwODY4OTk2Mg==&mid=2652043048&idx=1&sn=2e63829f75b10acbe87e0b2e1949d573&chksm=808d576db7fade7b358dc9122e7b2e15472df0994a6a1f1be810415fdd2f39aa3eaeb1617c4d&mpshare=1&scene=1&srcid=0409YSzZyJcYCYV4XNFDWye6&pass_ticket=rnHztaZJ5REdMYRdW4ZVHIuxwLCifFc4RbXSw9%2BmXmJ7jKSw1n1L3jMUFj5Oq28a#rd" rel="nofollow,noindex">9.移动应用设计:应用内搜索和业务转化</a></h2> <p>正如上期 《移动应用设计:综述、导航和浏览》中所说,导航和浏览自然是帮助用户寻找到内容的关键功能,高效并且好用的应用内搜索也同样至关重要。下面这三条原则能最大限度地提高您的应用搜索功能的价值。</p> <h2><a href="https://mp.weixin.qq.com/s?__biz=MzIzNDA3MDgwNA==&mid=2649230267&idx=1&sn=0e1bb52d3470c2d90ee6c17833ec7827&chksm=f0e75dc0c790d4d6e3bec848bfd9c51d9c745b266ab0ac3a43aa379546829eec3d0997add8e4&mpshare=1&scene=1&srcid=0409T6XFkRcUxvi0HxeP6wFN&pass_ticket=rnHztaZJ5REdMYRdW4ZVHIuxwLCifFc4RbXSw9%2BmXmJ7jKSw1n1L3jMUFj5Oq28a#rd" rel="nofollow,noindex">10.Android安全防护之旅---带你把Apk混淆成中文语言代码</a></h2> <p>最近想爆破一个app,没有加壳,简单的使用Jadx打开查看源码,结果把我逗乐了,代码中既然都是中文,而且是一些比较奇葩的中文字句,瞬间感觉懵逼了,这app真会玩,我们知道因为Java语言是支持双字符的,所以可以将包名,类名,变量名,方法名定义成中文.</p> <p><strong>类库</strong></p> <h2><a href="/misc/goto?guid=4959746839603810326" rel="nofollow,noindex">1.SlidingRootNav</a></h2> <p>一个顺滑的抽屉效果</p> <h2><a href="/misc/goto?guid=4959747002066692700" rel="nofollow,noindex">2.cropiwa</a></h2> <p>自定义图片裁剪的形状</p> <h2><a href="/misc/goto?guid=4959714738710100208" rel="nofollow,noindex">3.MVPArms</a></h2> <p>一个MVP架构集合</p> <h2><a href="/misc/goto?guid=4959747002179983472" rel="nofollow,noindex">4.spruce-android</a></h2> <p>一个轻量级的动画库</p> <h2><a href="/misc/goto?guid=4959747002251748920" rel="nofollow,noindex">5.sand</a></h2> <p>使用JNI实现Sobel算子图像边缘检测</p> <h2><a href="/misc/goto?guid=4959747002344349069" rel="nofollow,noindex">6.PatternLockView</a></h2> <p>一个易于使用的,可定制的锁屏类库</p> <h2><a href="/misc/goto?guid=4959747002433269448" rel="nofollow,noindex">7.Grav</a></h2> <p>一个配置多个点实现的动画</p> <h2><a href="/misc/goto?guid=4959747002519701553" rel="nofollow,noindex">8.Isometric</a></h2> <p>Isometric drawing library for Android</p> <h2><a href="/misc/goto?guid=4959747002595090510" rel="nofollow,noindex">9.IconSwitch</a></h2> <p>好看的切换图标</p> <h2><a href="/misc/goto?guid=4959747002673748401" rel="nofollow,noindex">10.FingerprintManager</a></h2> <p>指纹识别库</p> <h2><a href="/misc/goto?guid=4959009806342377686" rel="nofollow,noindex">11.UltraViewPager</a></h2> <p>多功能的viewpager</p> <h2><a href="/misc/goto?guid=4959747002787356761" rel="nofollow,noindex">12.BezierViewPager</a></h2> <p>BezierView</p> <h2><a href="/misc/goto?guid=4959747002869649766" rel="nofollow,noindex">13.CompressHelper</a></h2> <p>压缩文件,压缩图片,压缩Bitmap,Compress,CompressImage,CompressFile,CompressBitmap</p> <h2><a href="/misc/goto?guid=4959747002954089305" rel="nofollow,noindex">14.Tangram-Android</a></h2> <p>Tangram是一套动态化构建 Native 页面的框架</p> <h2><a href="/misc/goto?guid=4959746839672063927" rel="nofollow,noindex">15.ShadowImageView</a></h2> <p>可以根据图片变颜色,更加细腻的阴影效果</p> <p><strong>算法</strong></p> <h2><a href="https://github.com/nonstriater/Learn-Algorithms?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io" rel="nofollow,noindex">1.Learn-Algorithms</a></h2> <p>算法学习笔记</p> <p><strong>博外话</strong></p> <h2><a href="http://www.21cto.com/article/791?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io" rel="nofollow,noindex">1.一名架构师的自我修养</a></h2> <p>合格的架构师一定需要有前瞻性的眼光。 架构不是演化出来的,摸着石头过河,遇到问题解决问题,那是专家的优势和特长,架构师不应该关注如何精妙的去解决问题,而应该关注如何从一开始就奠定粗糙但正确的蓝图和基调,避免后面投入大量的资源去应对本不该出现的各种危机。</p> <h2><a href="/misc/goto?guid=4959747003222316847" rel="nofollow,noindex">2.奔四的我,为什么去“四十岁被裁”的华为?</a></h2> <p>此前,华为传出过清退老员工风波,不过在今日的2016年财报发布会上,轮值CEO徐直军否认了这一说法,称“内部从来没听说'裁员'这两个字”。《21CBR》近日采访了一位刚跳去华为的中年员工,与外界对华为的评论有所不同。</p> <h2><a href="https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650995792&idx=1&sn=cf213985b0c13d5012ccf63ee01fc604&chksm=bdbf04038ac88d15f98e0042ccc2459e79fbd308566dd8dd3da825b6deb36bce05b2d351f79e&mpshare=1&scene=1&srcid=0409DpUNzPsFHw3pRQHMCc0T&pass_ticket=rnHztaZJ5REdMYRdW4ZVHIuxwLCifFc4RbXSw9%2BmXmJ7jKSw1n1L3jMUFj5Oq28a#rd" rel="nofollow,noindex">3.如何成长为一名合格的架构师?</a></h2> <p>主要当然是跟架构相关的事情吧(好像是废话哎),具体一点就是架构设计,讲解推广,然后再做一些代码方面的工作。说起来,讲解推广可能是很多人不太重视的,但其实它的比重还是比较大的,基本能到三成。</p> <p> </p> <p>来自:http://www.androidblog.cn/index.php/Index/detail/id/69</p> <p> </p>