Android博客周刊第69期

LittleDuck 7年前
   <h2><strong>新闻</strong></h2>    <h2><a href="/misc/goto?guid=4959750860235827399" rel="nofollow,noindex">1.外媒评选的各项最佳Android Wear智能手表</a></h2>    <p>随着越来越多的 Android Wear 智能手表进入市场,要想从中选出一款最佳手表可不是一件容易的事。不过,我们可以来看看外媒 Wareable 评选出的各项最佳产品。 2017 年最佳 Android Wear 手表:LG Watch Sport</p>    <h2><a href="/misc/goto?guid=4959750860321535771" rel="nofollow,noindex">2.Google介绍Peer Grouping技术细节:如何筛选恶意Android应用</a></h2>    <p>Android系统的开放固然赢得了众多开发者和用户的青睐,但同时安全也成为摆在Google面前的重大挑战。近年来,Google不断借助机器学习和人工智能技术来甄别危险应用,从而在用户安装之前扼杀和打击恶意程序和漏洞。</p>    <p><strong>国外博客</strong></p>    <h2><a href="/misc/goto?guid=4959750860404084976" rel="nofollow,noindex">1.Designing Adaptive Icons</a></h2>    <p>Android O introduces a new app icon format: adaptive icons. Adaptive icons can make devices more coherent by unifying the shape of all app icons and opening the door to interesting visual effects.</p>    <h2><a href="/misc/goto?guid=4959750860479441995" rel="nofollow,noindex">2.Surfacing Hidden Change to Pull Requests</a></h2>    <p>Programming frequently deals in visible changes: the logic in your code, the dependencies you declare, the API you expose. There is, however, quite a bit of associated hidden change</p>    <h2><a href="/misc/goto?guid=4959750860565569532" rel="nofollow,noindex">3.I’m an Android developer</a></h2>    <p>I’m 26 years old and work as a senior Android developer at the biggest telecommunications and broadband company in Denmark — not because I have a fancy education, but rather a ton of practical experience. Here’s my story.</p>    <h2><a href="/misc/goto?guid=4959750860647108422" rel="nofollow,noindex">4.A Primer on Android navigation</a></h2>    <p>As soon as you link two screens together in an app, you have navigation. That link—whatever it may be—is the vehicle that carries users between those screens.</p>    <h2><a href="/misc/goto?guid=4959750860727045503" rel="nofollow,noindex">5.Android UI and unit tests coverage report with Jacoco and SonarQube</a></h2>    <p>Nowadays writing code without tests is a sign of poor tone. So everybody in our team is trying to improve one’s skills in this field. Writing tests became a competition for us (approaches, libs etc.).</p>    <h2><strong>国内博客</strong></h2>    <h2><a href="/misc/goto?guid=4959750860814987206" rel="nofollow,noindex">1.深入Java核心</a></h2>    <p>在JRE中,类加载器主要分为以下几种:引导类加载器(Bootstrap)它本身使用C/C++语言实现的,负责加载Java的核心类库,在jre\lib目录中,当中包括如rt.jar,这些都是Java自带的核心类库,必须由它来完成加载。拓展/扩展类加载器(Extension)这个加载器就是由Java语言实现.</p>    <h2><a href="/misc/goto?guid=4959750860891322737" rel="nofollow,noindex">2.理解 Android 新的依赖方式</a></h2>    <p>简评:Android 团队在 Android Studio 3.0 中给我们带来了非常多的改变,其中一点就是对项目依赖方式的改进。这篇文章就将详细介绍下这项改进。一个 App 工程往往是由许多互相依赖的 module 所组成,对于处于最底层、最基础的 module,有两种可能的变化:</p>    <h2><a href="/misc/goto?guid=4959750860975329366" rel="nofollow,noindex">3.陆奇最新演讲:如何成为一个优秀的工程师</a></h2>    <p>一位工程师,如何才能称得上优秀?除了写得一手好Code,什么样的工作态度和方法才是一个优秀工程师的必备? 7月11日,陆奇出席百度内部Engineering Leadership Talk。作为计算机科学博士及优秀的管理者,他提出的五点要求,对每一位百度工程师都适用。</p>    <h2><a href="/misc/goto?guid=4959750861049478389" rel="nofollow,noindex">4.Android 应用背景加载系统动态壁纸</a></h2>    <p>客户的需求总是那么让人摸不着头脑,我们的应用和系统的launcher是共同存在的双桌面形式,客户要求应用必须支持系统桌面的壁纸,针对这个需求,静态壁纸很容易实现,但是动态壁纸就很麻烦了,毕竟我们的只是一个应用伪launcher,并不是在真正的launcher源码上进行更改的桌面程序。</p>    <h2><a href="/misc/goto?guid=4959750861135765113" rel="nofollow,noindex">5.Android App性能优化[译]</a></h2>    <p>开发Android系统的应用程序,开发人员获得了很多的自由,App的拥有者也见证了用户的不断增长。不过,在此过程中开发者也面对着很多应用开发的挑战。 开发人员发现很多Android os版本很难跟进开发。 运行Android系统的设备类型有170+种,这也是Android开发一个巨大的挑战。每种设备有不同的屏幕尺寸、摄像头按钮、键盘形式等等,使得开发成为一个噩梦。</p>    <h2><a href="/misc/goto?guid=4959750670826482013" rel="nofollow,noindex">6.Android 平台 Native 代码的崩溃捕获机制及实现</a></h2>    <p>在Android平台,native crash一直是crash里的大头。native crash具有上下文不全、出错信息模糊、难以捕捉等特点,比java crash更难修复。所以一个合格的异常捕获组件也要能达到以下目的</p>    <h2><a href="/misc/goto?guid=4959750861250916444" rel="nofollow,noindex">7.使用 Gradle 对应用进行个性化定制</a></h2>    <p>一般的应用基本上都有正式服和测试服,这个就不需要多说了。但是有些应用可能还有超管服务器专供运营人员使用,对应用内的一些内容进行监管,具有一些管理员才有的操作权限。 开发过程中发布测试服务器的安装包需要在版本号后面增加版本序号,超管服务器的包在版本号后面增加管理员文字,线上包则正常显示版本号。</p>    <h2><a href="https://mp.weixin.qq.com/s?__biz=MzI1MjMyOTU2Ng==&mid=2247484652&idx=1&sn=7795db9405e1ed1594d751410ddb7c7a&chksm=e9e42fddde93a6cbc29e56518b38dbd4ebf86aafe299d1f0dcd80a1397d9bdfbd814c18d0111&mpshare=1&scene=1&srcid=0701keGnFyIZE9R3UcCK05fG&pass_ticket=91RErZbXFPvN2AX5gQU1jbKrdy9f/uX4Lc7aUsm6P7KQZYd1mPxPguTn3eN0u+xK#rd" rel="nofollow,noindex">8.深入Android源码系列(二) HOOK技术大作战</a></h2>    <p>本文讲解内容有 hook技术原理探究 hook本进程方法 hook跨进程的系统调用,方法 so注入 GOT完成so方法hook ELF文件头信息 00 简单描述下原理,当我们想去监听func方法,如果我们按照代码去编写,则会是如下格式</p>    <h2><a href="/misc/goto?guid=4959750861408857391" rel="nofollow,noindex">9.Android仿百度贴吧客户端Loading小球</a></h2>    <p>使用百度贴吧客户端的时候发发现加载的小动画挺有意思的,于是自己动手写写看。想学习自定义View以及自定义动画的小伙伴一定不要错过哦。 读者朋友需要有最基本的canvas绘图功底,比如画笔Paint的简单使用、Path如何画直线等简单的操作,不熟悉也没关系,下文带大家撸代码的时候会简单的讲一下。</p>    <h2><a href="/misc/goto?guid=4959750861490857978" rel="nofollow,noindex">10.详谈java内存模型</a></h2>    <p>我们写的java代码,自己看得懂,然而虚拟机是看不懂的,更不用说直接在机器上跑起来了。要让java代码按照我们的意图跑起来的话,需要以下几个过程。java代码会经过javac编译器编译,转化成class文件,也就是常说的字节码。然后再经过jvm把字节码转化成机器可以识别的机器码,才能跑起来。</p>    <h2><a href="/misc/goto?guid=4959750861579414860" rel="nofollow,noindex">11.startActivity探索</a></h2>    <p>使用startActivity可以很轻易的启动一个Activity,可以在Activity中使用,可以在Service中使用,也就是只要是Context的子类都可以使用。那么从Context说起。首先看下Context的继承关系。Mac快捷键Control+H可以看见,这里用一个图来说明</p>    <h2><a href="/misc/goto?guid=4959750861655858149" rel="nofollow,noindex">12.实用性MAX!像普通View一样自由使用的粒子组件</a></h2>    <p>之前作过一篇萤火虫飞舞粒子效果,当时看还不错。无论是性能还是UI都满足了当时的设计效果,但实际应用到项目中,却发现由于SurfaceView 其本身是绘制在window层面上的,对View本身的属性有很多的限制,用起来却不是很实在,还存在着很多不足。</p>    <h2><strong>类库</strong></h2>    <h2><a href="/misc/goto?guid=4959750663750133866" rel="nofollow,noindex">1.Spotlight</a></h2>    <p>一款可用于做新功能引导</p>    <h2><a href="/misc/goto?guid=4959750670992417349" rel="nofollow,noindex">2.SmartRefreshLayout</a></h2>    <p>下拉刷新,RefreshLayout,OverScroll,Android智能下拉刷新框架,支持越界回弹,集成了几十种炫酷的Header和 Footer。</p>    <h2><a href="/misc/goto?guid=4959750861791234737" rel="nofollow,noindex">3.RichPath</a></h2>    <p>自定义动画draw svg,pathData</p>    <h2><a href="/misc/goto?guid=4959749411533796956" rel="nofollow,noindex">4.PaletteImageView</a></h2>    <p>懂得智能配色的ImageView,还能给自己设置多彩的阴影哦。</p>    <h2><a href="/misc/goto?guid=4959750861912182774" rel="nofollow,noindex">5.SlidingUpPanelLayout</a></h2>    <p>一个竖直方向的SlidingPanelLayout,支持加载多个Panel,可以灵活地实现漂亮的的交互效果。</p>    <h2><a href="/misc/goto?guid=4959750861990378449" rel="nofollow,noindex">6.CustomProgress</a></h2>    <p>一款常见的进度条加载框架</p>    <h2><a href="/misc/goto?guid=4959750862068442675" rel="nofollow,noindex">7.AndroidControl</a></h2>    <p>可以实时查看和控制安卓手机的安卓远程控制软件,致力于完成一个高端的安卓群控软件 可以群控,录制运行脚本等等功能......</p>    <h2><a href="/misc/goto?guid=4959750862155427273" rel="nofollow,noindex">8.sketch</a></h2>    <p>Sketch是Android上一个强大且全面的图片加载器,支持GIF,手势缩放以及分块显示超大图片。</p>    <h2><a href="/misc/goto?guid=4959750862237530098" rel="nofollow,noindex">9.AdaptiveIconPlayground</a></h2>    <p>一款调试桌面上的icons工具</p>    <h2><a href="/misc/goto?guid=4959750862323312458" rel="nofollow,noindex">10.Fish</a></h2>    <p>灵动的红鲤鱼(绘制部分)</p>    <h2><a href="/misc/goto?guid=4959750862402338950" rel="nofollow,noindex">11.CustomRippleView</a></h2>    <p>自定义波纹效果,速度、颜色、粗细可自定义,效果见效果图</p>    <h2><strong>面试题</strong></h2>    <h2><a href="https://mp.weixin.qq.com/s?__biz=MzAxMTEyOTQ5OQ==&mid=2650610910&idx=1&sn=f20f675fc27d012bc1afb28f3484406e&chksm=834c7b2ab43bf23c5dc55a97748de9b308ef57e0c799fbf124cbd79f0a218fb822541ee62b75#rd" rel="nofollow,noindex">1.程序员,为什么写不好一份简历?</a></h2>    <p>工作十余年下来,参与过很多次招聘,看过很多程序员的简历,却发现少有让人满意的。回顾自己,上次投简历已是六、七年前,再一想当年的简历却也是不禁摇头叹息。如今,站在求职的另一端,终于开始明白什么样的简历算是好简历了。</p>    <h2><strong>博外话</strong></h2>    <h2><a href="/misc/goto?guid=4959750862570969630" rel="nofollow,noindex">1.生活的智慧</a></h2>    <p>我曾经写过一篇文章,叫『编程的智慧』。再加上我总写一些技术性的文章,不认识我的人可能还以为我是个技术狂人,只知道谈论技术,不会生活。其实跟我接触紧密的人都知道,我是一个很会生活的人。</p>    <h2><a href="/misc/goto?guid=4959750862639498585" rel="nofollow,noindex">2.如何成为快乐高产的程序员</a></h2>    <p>书上说的那些好习惯:早起、冥想、瑜伽、读书,总是坚持不下来。 每天总会有乱七八糟的事情打乱规划,而这些乱入的工作由于涉及上层的诉求,优先级都挺高,更可怕的是,自己也逐渐习惯或适应了这种工作习惯。 工作中越来越发现欠缺的知识太多,所以潜意识里面压力很大。</p>    <p> </p>    <p>来自:http://www.androidblog.cn/index.php/Index/detail/id/79</p>    <p> </p>