Android博客周刊第70期

Jua9820 7年前
   <h2><strong>新闻</strong></h2>    <p><a href="/misc/goto?guid=4959751020669046058" rel="nofollow,noindex">1.不用甜品用动物?Android O或名“Octopus”(章鱼)</a></p>    <p>Google的开发团队素来偏好使用甜点来命名Android系统,而此前推测即将上线的Andorid O系统极有可能命名为“Oreo”(奥利奥)或者“Oatmeal Cookie”(燕麦饼干),不过通过今天发布的Android O最后一个开发者预览版,Android O可能叫做“Octopus”(章鱼)。</p>    <p><a href="/misc/goto?guid=4959751020754074303" rel="nofollow,noindex">2.Android O接近完成:最后一个开发者预览版DP4发布</a></p>    <p>谷歌的Android移动系统从未停止前进的脚步,公司于今天发布了Android O系统的第四个开发者预览版,这也是Android 8.0最终版上线之前的最后一个预览版。夏季官方结束日期为9月22日,因此推测Android O有望在此之前亮相发布。</p>    <h2><strong>国外博客</strong></h2>    <p><a href="/misc/goto?guid=4959751020834646297" rel="nofollow,noindex">1.How to animate on Android</a></p>    <p>Previously I have described how to create animations for both native Android and React Native applications using OpenGL. This time I’d like to tell about different tools which could be useful for Android animations of any difficulty and their pros and cons.</p>    <p><a href="/misc/goto?guid=4959751020919046149" rel="nofollow,noindex">2.RxJava Anatomy: What is RxJava, how RxJava is designed, and how RxJava works.</a></p>    <p>RxJava has become the single most important skill for Android development. Most of you must have worked with it in some form, either in your own codebase or through other third party libraries, like Fast Android Networking and Retrofit.</p>    <p><a href="/misc/goto?guid=4959751020998999431" rel="nofollow,noindex">3.ViewModels: Persistence, onSaveInstanceState(), Restoring UI State and Loaders</a></p>    <p>In the last blog post I explored a simple use case with the new ViewModel class for saving basketball score data during a configuration change. ViewModels are designed to hold and manage UI-related data in a life-cycle conscious way</p>    <p><a href="/misc/goto?guid=4959751021085152850" rel="nofollow,noindex">4.MVI on Android</a></p>    <p>I have been using Cycle.js for a couple of small hobby projects and I really like the observables only approach. Having used reactive patterns on Android to some extent as well</p>    <p><a href="/misc/goto?guid=4959751021170150940" rel="nofollow,noindex">5.Android: Working with themes and styles</a></p>    <p>One of the most important elements to a successful app is its design. Many developers have a natural tendency to focus on the functionality of their app and leave its appearance as an afterthought.</p>    <h2><strong>国内博客</strong></h2>    <p><a href="/misc/goto?guid=4959751021243806122" rel="nofollow,noindex">1.Android远程调试的探索与实现</a></p>    <p>作为程序员,查bug一般使用下面几种方式:阅读源码、记录日志或调试程序。一般本地无法复现的问题通过阅读源码很难找到原因,而且大多数情况都和用户本地环境有关。记录日志的缺点之前讲过了,同样不予考虑,那能否像调试本地程序一样调试已经发布出去的程序呢?我们对此做了一些尝试和探索。</p>    <p><a href="/misc/goto?guid=4959751021330132888" rel="nofollow,noindex">2.AOP技术在网易新闻中的应用</a></p>    <p>在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低</p>    <p><a href="/misc/goto?guid=4959751021410922465" rel="nofollow,noindex">3.Android源码完全解析——View的Measure过程</a></p>    <p>在Android中,Veiw从内存中到呈现在UI界面上需要经过measure(测量)、layout(布局)、draw(绘制)这样一个过程。为什么需要measure过程?因为在Android中View有自适应尺寸的机制,在用自适应尺寸来定义View大小的时候,View的真实尺寸还不能确定,这时候就需要根据View的宽高匹配规则,经过计算,得到具体的像素值,measure过程就是干这件事。</p>    <p><a href="/misc/goto?guid=4959751021499746927" rel="nofollow,noindex">4.Android全面插件化RePlugin流程与源码解析</a></p>    <p>RePlugin,360开源的全面插件化框架,按照官网说的,其目的是“尽可能多的让模块变成插件”,并在很稳定的前提下,尽可能像开发普通App那样灵活。那么下面就让我们一起深入♂了解它吧。</p>    <p><a href="/misc/goto?guid=4959751021584128091" rel="nofollow,noindex">5.JVM层对jar包字节码加密</a></p>    <p>拿到的需求是要对某特定的jar包实现加密保护,jar包需要提供给外部使用,但核心逻辑部分需要保护以免被简单反编译即能看到。 混淆器,将jar包混淆后反编译出来的东西看起来就很眼花,但如果耐心一点也是可以看出来的。</p>    <p><a href="/misc/goto?guid=4959751021662457910" rel="nofollow,noindex">6.Android 高级混淆和代码保护技术</a></p>    <p>这是一篇关于 Android 代码保护的文章,旨在介绍代码混淆、防止逆向工程的各种高级技巧。大家都很忙,我也赶着回去继续开发我的新应用,因此话不多说,越干(gan, 一声)越好。 开始之前,值得一说的是,本文完全由我开发的「纯纯写作」书写而成,纯纯写作主打安全、写作体验和永不丢失内容,于是本着珍爱生命,我用纯纯写作来写这篇文章。</p>    <p><a href="/misc/goto?guid=4959751021744407036" rel="nofollow,noindex">7.Android 中的多进程,你值得了解的一些知识</a></p>    <p>不知道大家在平时的开发中有没有遇到这样一个问题:自定义的 Application 类在应用启动的时候被多次创建,或者在使用到某个功能的时候 Application 再次被创建。换句话说,Application 的 onCreate() 方法被调用了两次或者更多次。</p>    <p><a href="/misc/goto?guid=4959751021825875795" rel="nofollow,noindex">8.体验飞一般的感觉,将Android 构建速度提升10倍以上</a></p>    <p>相信很多Android开发者每天都会被Android的构建速度影响到,很多人说我只改了一行代码,又要编译2分钟,还是有人说我什么都没动,却还要等待这么久,严重影响工作效率。好消息是Google IO大会上Android 推出了插件3.0.0版本,并且专门做了一次分享,介绍了新的插件特色</p>    <p><a href="/misc/goto?guid=4959751021909852244" rel="nofollow,noindex">9.Java的泛型解析</a></p>    <p>类型安全:泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)。</p>    <p><a href="/misc/goto?guid=4959751021988539199" rel="nofollow,noindex">10.HenCoder Android 开发进阶:自定义 View 1-3 文字的绘制</a></p>    <p>和上期一样,这期讲的是细节,其中有一部分内容并不是很常用,所以这期你不必要求自己把内容全部背会,而只要做到全部理解,知道都有什么东西,大概怎么用就好,到你真正需要用的时候再拐回来看就是</p>    <p><a href="/misc/goto?guid=4959751022087357388" rel="nofollow,noindex">11.组织优秀代码的四原则</a></p>    <p>代码写了5年,必然会产生审丑疲劳,代码混乱不堪,无法维护,可阅读性基本没有。面对种种的问题,如何使代码更优雅,更具可读性便成了迫切需要解决的问题。下面我从实战中总结了四项基本原则</p>    <h2><strong>类库</strong></h2>    <p><a href="/misc/goto?guid=4959751022161104080" rel="nofollow,noindex">1.SuperCalendar</a></p>    <p>android 自定义日历控件 支持左右无限滑动 周月切换 标记日期显示 自定义显示效果跳转到指定日期</p>    <p><a href="/misc/goto?guid=4959751022240071998" rel="nofollow,noindex">2.Orin</a></p>    <p>一个音乐播放器APP</p>    <p><a href="/misc/goto?guid=4959750776612273280" rel="nofollow,noindex">3.DropDownView</a></p>    <p>一个下拉菜单动画类库</p>    <p><a href="/misc/goto?guid=4959750776939273136" rel="nofollow,noindex">4.ShimmerLayout</a></p>    <p>一个闪光的layout,类似非死book的效果</p>    <p><a href="/misc/goto?guid=4959751022383974403" rel="nofollow,noindex">5.SeparateShapesView</a></p>    <p>一个灵活带动画的圆角button</p>    <p><a href="/misc/goto?guid=4959751022468370988" rel="nofollow,noindex">6.material-searchview</a></p>    <p>Library to create a material search view similar to one used in apps developed by Google Inc.</p>    <p><a href="/misc/goto?guid=4959751022555622993" rel="nofollow,noindex">7.FileListerDialog</a></p>    <p>文件选择器</p>    <p><a href="/misc/goto?guid=4959751022637594353" rel="nofollow,noindex">8.YuuPlayer</a></p>    <p>基于 Webview 实现的 油Tube Player</p>    <p><a href="/misc/goto?guid=4959751022715338416" rel="nofollow,noindex">9.HexagonRecyclerView</a></p>    <p>一个正六边形的RecyclerView</p>    <p><a href="/misc/goto?guid=4959751022794272069" rel="nofollow,noindex">10.android-player-tv</a></p>    <p>The Android TV version of LUSH Player</p>    <p><a href="/misc/goto?guid=4959751022880068360" rel="nofollow,noindex">11.RxLifecycle</a></p>    <p>以非侵入性的方式绑定Activity或Fragment的生命周期。</p>    <p><a href="/misc/goto?guid=4959751022964469001" rel="nofollow,noindex">12.RxRedux</a></p>    <p>使用Rxjva关闭状态的类库</p>    <p><a href="/misc/goto?guid=4959751023053756664" rel="nofollow,noindex">13.AppManager</a></p>    <p>如何优雅的退出应用和处理崩溃异常自动重启</p>    <h2><strong>面试题</strong></h2>    <p><a href="/misc/goto?guid=4959751023131243116" rel="nofollow,noindex">1.这可能不只是一篇面经</a></p>    <p>5月份一个很偶然的机会,加了叶神的微信,还收到了祝福。一激动就承诺说写篇最详细的面经分享给大家,毕竟用了这么久的牛客网,收获真的很大。校招真的是段劳心伤神的经历,我把这一路的体会,写在秋招前,也许能给那些和我一样迷茫过,怀疑过,失落过的人一些帮助。</p>    <h2><strong>博外话</strong></h2>    <p><a href="/misc/goto?guid=4959751023217395492" rel="nofollow,noindex">1.从辍学到名企资深开发工程师,一名 Android 开发者逆袭血泪史</a></p>    <p>我今年 26 岁,作为一名资深 Android 开发者,同时也是一位大学辍学者,我以牺牲正规教育为代价换取了实践经验,目前就职于丹麦最大的电信和宽带公司-并不是因为我有很好的教育背景,而是因为我有大量的实践经验。接下来是我的故事。</p>    <p><a href="https://mp.weixin.qq.com/s?__biz=MzIyNjE0MzU1OQ==&mid=2650101232&idx=1&sn=feaae7a1ff2438b3eea8818a306bd35c&chksm=f07509d8c70280ce5442b3c4c0fb083547e322944e315121f56df51d45b3e42211045a226c8e#rd" rel="nofollow,noindex">2.想提高团队技术,来试试这个套路!</a></p>    <p>什么是场域?你可以把场域理解为游戏背景故事,魔兽世界、梦幻西游都有一个特别打动人心的背景故事,大家接受这个故事,才会接受你的游戏规则,起码是不排斥你的游戏规则。所以针对你的受众,投其所好设计场域非常重要,这决定了大家的参与度。</p>    <p> </p>    <p>来自:http://www.androidblog.cn/index.php/Index/detail/id/80</p>    <p> </p>