Android开发技术周报 Issue#23
教程
-
由@Trinea发起的,大家的共同参与和维护,目前“Android 面试题集锦及解答” 已有 63 个 Issues,近 400 Star。另外我们将一部分精彩话题移到“Android 精选话题讨论”下讨论 http://t.cn/RwgpkQh 每天逛 GitHub 会成为更多开发的习惯。
-
RecyclerView Bug:IndexOutOfBoundsException: Inconsistency detected. Invalid item position 解决方案
使用 RecyclerView 加官方下拉刷新的时候,如果绑定的 List 对象在更新数据之前进行了 clear,而这时用户紧接着迅速上滑 RV,就会造成崩溃,而且异常不会报到你的代码上,属于RV内部错误。初次猜测是,当你 clear 了 list 之后,这时迅速上滑,而新数据还没到来,导致 RV 要更新加载下面的 Item 时候,找不到数据源了,造成 crash。
-
使用Androguard进行Android APK逆向工程系列
Androguard使用Python写的一系列逆向工具集,功能很强大哦,对逆向工程感兴趣的小伙伴可以这个系列。
-
如何不重打包调试Android应用
安全工程师在进行Android逆向的时候常常会有动态调试的需求,由于厂商对外发布的APP都是release版,发布产品时都会将debuggable设置为 false,使第三方不能直接调试分析APP。目前流行的方法是修改APK的 AndroidManifest.xml 将 android:debuggable 设置为 true,再重新打包签名,操作较简单,但如果碰到做了自校验加固的APK包,还要去除APK的自校验才能重打包成功,对安全人员的逆向水平和技术要求又提高了不少。 -
Drozer是MWR Labs开发的一款针对Android系统的安全测试框架。Drozer可以通过与Dalivik 虚拟机,以及其它应用程序的IPC端点以及底层操作系统的交互,避免正处于开发阶段,或者部署于你的组织的android应用程序和设备暴露出不可接受的安全风险。
-
Android使用java作为平台开发,帮助了我们解决了很多底层问题,比如内存管理,平台依赖等等。然而,我们也经常遇到OutOfMemoey问题,垃圾回收到底去哪了?
-
Java代码是非常容易反编译的。为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理。ProGuard是一个混淆代码的开源项目。它的主要作用就是混淆,当然它还能对字节码进行缩减体积、优化等,但那些对于我们来说都算是次要的功能。
-
将FilterMenu提交到GitHub后,在README.md的Getting Started里仅仅写上
Download the source to use it as library project
这唯一使用途径,居然没有gradle/maven?作为Android Studio的忠实用户,自己写的库怎么能只提供这么麻烦的方法!!!于是决定把它提交到Maven Central中,并写下这篇。 -
之前一直在windows下用source insight阅读android源码,效果非常好。后来远程异地服务器,网络限制,一直用ssh + vim,现在主要还是以这种方式。最近发现一个不错的东西(早就有了),在android源码中有这么一个目录development/tools/idegen。顾名思义,是生成ide的project文件,主要是生成intellij的project文件,当然夜可用于android studio。使用之后,发现效果超棒,所以这里专门撰文推荐。
-
之前推荐过英文的,最近由@andyiac同学翻译成了中文版,特此在推荐一下。摘要:1.使用 Gradle 和它推荐的工程结构;2.把密码和敏感数据放在gradle.properties;3.不要自己写 HTTP 客户端,使用Volley或OkHttp库;4.使用Jackson库解析JSON数据;5.避免使用Guava同时使用一些类库来避免65k method;6.limit(一个Android程序中最多能执行65536个方法);7.使用 Fragments来呈现UI视图。
-
个人一直对Chrome情有独钟,Chrome除了更快之外,对开发者的支持更友好。内置强大的Developer Tools,相信Web开发简直爱不释手!而且Chrome Store里提供各种各样的插件,没有你用不到,只有你想不到。现在任何事基本Chrome全部办的到,有时候就在想,如果可以用Chrome调试Android App该多方便,而如今Facebook刚刚开源了一个工具Stetho,从此Chrome调试Android不再是梦。
代码&开源库
-
仿微信/支付宝的密码输入框效果。
-
下拉刷新的动画好赞。
-
官方Sample,一款播放器,UI和交互都超级棒,而且同时支持手机、平板和Android Wear。
-
效果很赞的圆形菜单。
-
一个快速开启关闭开发者设置的工具,提供了app界面和桌面widget,能快速打开关闭overdraw,layout border,gpu rendering,adb wifi,不保存activity实例等功能。
-
一个多功能的RecyclerView,包括了下拉刷新、加载更多,滑动删除,拖拽排序、多种动画、视差拖动、Toolbar渐变、Toolbar和FAB随着滚动出现消失等等效果,都可以放在同一个RecyclerVIew中并自由配置。
-
Android Transition动画解释说明示例。
工具
-
AndroidSutdio1.2新增特性列表:反编译 debugger自动显示变量值 debugger显示变量引用 evaluation expression支持lambda和操作符运算(>>>) 性能提升 注解推断(@NotNull,@Nullable,@Contract) git历史查看。
-
Android Apk Decompiler 一个在线反编译 Android APK 的工具,方便手头没有开发电脑的时候临时反编译一下APK使用。
新闻
-
谷歌 Android 团队通过其官方博客发布了全新的 Android 5.1 系统更新,修复一些系统错误并新增了一些特性。Android 5.1 已经率先在谷歌发布的 Android One 入门级手机进行了升级。而目前谷歌宣布 Android 5.1 将推送给 Nexus 手机和平板电脑用户。此次更新修复了一些系统错误、支持多 SIM 卡、高清语音、引入「设备安全保护」机制以及在下拉菜单新增 Wifi 和蓝牙设置。
视频
-
本次课程将带领大家了解Android中对图像色彩的处理和分析方法,并通过实例向大家演示市面上常见的图像处理特效的实现方法。