Android开发技术周报 Issue#18
新闻
-
近日,Groovy编程语言的管理者Guillaume Laforge在博客上宣布了Groovy 2.4发布的消息。就在不久前,Pivotal宣布不再资助Groovy/Grails项目,Groovy 2.4将成为Pivotal资助下的最后一个主要的Groovy版本。Groovy 2.4最大的亮点就是对Android的支持,现在开发者可以完全使用Groovy编写Android应用了,而且与Java相比,可以省去很多样板代码。
教程
-
周末跑去深圳参加了一场阿里主持的技术沙龙,主题是《如何构建高可用的APP》,沙龙中相关的ppt和视频可以在他们的微博中找到。沙龙中收获比较大的是有关UC的何杰分享的Android应用性能优化实践,和手Q web业务优化的解析。
-
视图动画(View Animation),又称补间动画(Tween Animation),即给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关键帧间渐变。本文首先讲解各种基本动画的使用,其实介绍View动画的工作过程。
-
用开源项目ActivityOptionsICS让ActivityOptions的动画实现兼容
我之前写过一篇文章是讲解ActivityOption的api方法的(http://www.cnblogs.com/tianzhijiexian/p/4087917.html),当时吐槽各种动画不兼容,完全无视我们4.x或者2.x用户嘛,好在有开源库来帮助我们实现动画。
-
ListView或GridView中android:clipToPadding属性的使用说明示例该属性的解释:Defines whether the ViewGroup will clip its drawing surface so as to exclude the padding area. 什么意思呢?就是说:clipToPadding属性定义了是否允许ViewGroup在padding中绘制,该值默认为true,即不允许.
-
相信很多做过Java或Android开发的朋友经常会接触到JNI方面的技术,由其做过Android的朋友,为了应用的安全性,会将一些复杂的逻辑和算法通过本地代码(C或C++)来实现,然后打包成so动态库文件,并提供Java接口供应用层调用,这么做的目的主要就是为了提供应用的安全性,防止被反编译后被不法分子分析应用的逻辑。
-
在Android开发中,程序Crash分三种情况:未捕获的异常、ANR(Application Not Responding)和闪退(NDK引发错误)。其中未捕获的异常根据logcat打印的堆栈信息很容易定位错误。ANR错误也好查,Android规定,应用与用户进行交互时,如果5秒内没有响应用户的操作,则会引发ANR错误,并弹出一个系统提示框,让用户选择继续等待或立即关闭程序。
-
最近这两年移动端真是非常火,每个单位或多或少都会有那么几款App,对于我们Web安全攻城师来说,App安全也需要或多或少的了解一些。年初单位来了一位对App安全略有研究的小伙伴,某日闲来无事教了笔者几招,分享给大家。有句古语:”工欲善其事,必先利其器”,我们要研究App安全,没有几款高大上的神器是会非常麻烦的,因此本文主要给大家分享一下笔者学到的一些基础知识,主要是一些移动端测试辅助工具的使用。
-
Active Object模式是一种异步编程模式。它通过对方法的调用与方法的执行进行解耦来提高并发性。若以任务的概念来说,Active Object模式的核心则是它允许任务的提交(相当于对异步方法的调用)和任务的执行(相当于异步方法的真正执行)分离。
代码&开源库
-
一个Android TV应用。
-
自定义ViewGroup实现的圆形旋转菜单,支持跟随手指旋转以及快速旋转。
-
Volley的加强版,在Volley的基础上进行了扩展增加了:GsonRequest、GZipRequest、MultiPartRequest、SimpleMultiPartRequest、DownloadRequest、ImageRequest等Request的实现,以及增加了一个高效的图片缓存工具类SimpleImageLoder,同时支持多种类型的缓存:Network Caching、Resource Caching、File Caching、Video Caching和Content URI Caching。
-
垂直的SeekBar,支持2.3~5.0系统。
-
模仿实现了Chrome的Overflow Menu的动画效果。
-
json2view是一个非常简单的库,它可以将JSON文件转换为Android View,从而实现无需升级Apk就可以动态的更新View的样式。
-
KJFrameForAndroid 又叫KJLibrary,是一个帮助快速开发的框架。使用KJFrameForAndroid,你可以轻松完成http请求、网络图片加载、数据库数据保存或读取。
-
CJFrameForAndroid 是一个实现android插件化开发的框架。使用CJFrameForAndroid,apk动态加载不再是难题,更重要的是可以轻松实现插件与APP项目之间的解耦。
-
android插件化开发的框架,实现apk动态加载。
-
ActivityOptions Animations的兼容库,支持Android api3.1+。
-
一个在ViewPager头部添加一个TopView用以显示头部菜单的控件,类型豌豆荚的应用详情页实现。
-
模仿Google Inbox邮箱的上下拉返回效果,让你的app加入真正方便的手势操作。目前已支持底部为scrollview 顶部为listview和scrollview的情况,适用于大部分场景,正在做底部为listview的情况。
-
一个通过注解来方便我们保存和恢复Android Instance状态的Library。
工具
视频
-
React是Facebook开源的一个方便开发大型WebApp的框架。
-
本课程将带领大家通过自定义控件实现一个图案解锁的功能,包括自定义控件的使用、常见绘图操作、控件事件处理、监听器使用、以及综合案例的应用。
-
多种多样的App主界面Tab实现方法
Tab选项卡几乎成为了App必备的一个功能,它的实现方法也是多种多样,本课程就将讲解迄今为止最主流的4种实现Tab的方法,包括ViewPager、Fragment、FragmentPagerAdapter和ViewPagerIndicator。 -
安卓系统凭借其灵活和开放的特性获得了市场的青睐,但开放性也意味着APP开发者需要为安全负更大的责任。一方面在安卓APP这个快速发展的领域有大量新手开发者的加入,另一方面即使经验丰富的开发者也难免犯错误,安卓应用的漏洞层出不穷,值得我们深入研究。由于安卓APP的功能越来越多,代码逻辑越来越复杂,漏洞常常隐藏在深处,只有触发到一系列特定条件后才会被触发。
小技巧
-
查看task stack中当前正在运行的activity(@hi大头鬼hi)
adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p'
-
Android使用Chrome远程调试Webview(@hi大头鬼hi)
- chrome中输入
chrome://inspect/#devices
-
代码中需要开启webview debug
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true); }
- chrome中输入