Android进阶
文章平均质量分 82
nothingwxq
很喜欢简书md,我的http://www.jianshu.com/users/c717eefe3f42/latest_articles,有新的内容以后第一时间会在简书上更新
展开
-
Android HOOK工具Cydia Substrate使用详解
Cydia Substrate是一个代码修改平台。它可以修改任何主进程的代码,不管是用Java还是C/C++(native代码)编写的。而Xposed只支持 HOOK app_process中的java函数,因此Cydia Substrate是一款强大而实用的HOOK工具。AD:WOT2015 互联网运维与开发者大会 热销抢票Cydia Substrate是转载 2015-04-05 12:06:31 · 1653 阅读 · 0 评论 -
Android Studio 2.2 JNI编译及Rxjava使用初级
原文见我的简书http://www.jianshu.com/p/9a0280416fb3jni-2.png背景最近几天刚好无事由于在新公司,业务上安排不是很满。android studio 2.2以后,jni比较方便开发了。本文是使用jni进行初级的demo需求。一个图片的高斯模糊效果。算法参见(https://github.com/GankLi/Demo/tr原创 2016-10-02 14:46:32 · 1854 阅读 · 3 评论 -
IjkPlayer 源码阅读一 初始化
详见我的简书 http://www.jianshu.com/p/9b0675da83801 背景公司的底层播放器实际上是ffplayer作为基础修改的,当然需要好好学习研究。 记录下来,作为以后备忘。(发觉人老了,就容易忘事)。ps 入坑需谨慎,很容易入门到放弃。2 分析入口分析的连接https://github.com/Bilibili/ijkplayer版本原创 2017-07-28 18:39:36 · 4878 阅读 · 1 评论 -
属性动画源码分析
详见我的简书 http://www.jianshu.com/p/29fbf22bbbe3分析版本api 24首先我们要找一个入口,就从ObjectAnimator.ofInt(this, "width", 0, -20).start()开始吧,其他动画都是类似的。先看参数构造ObjectAnimator.ofInt(this, "currentProgress",原创 2017-07-28 18:41:26 · 522 阅读 · 0 评论 -
TabLayout double click 标题回顶部
背景产品同学要求了一个很反常的需求,双击tab标题,回到页面顶部,哎,作为一名程序猿首先想到的是pk掉,无奈之下做了本功能。于是就发现了google 的sdk里面的bug,哎,写这些代码的人多半是实习生(锅先甩出去,逃~~)实现双击回顶部这里的实现实际上很简单,唯一难点在于怎么区分单击还是双击(tab切换)。不多说,很快就写出如下代码:tabLayout.setOnTa原创 2017-07-28 18:42:55 · 692 阅读 · 0 评论 -
PagerAdapter闪屏坑的修复
详见 http://www.jianshu.com/p/29b708c62b33背景最近在填前同事的一个坑时,不小心遇到另外一个坑。 在一个礼物面板,原实现是gridView + ViewPager实现的(有几页礼物),在送用户免费礼物时,刷新ViewPager里面的item时,出现了闪屏。其实很多童鞋知道,PagerAdapter在调用notifyDataSetChang原创 2017-07-28 18:44:33 · 1305 阅读 · 0 评论 -
Gradle plugin自定义
详见我的简书 http://www.jianshu.com/p/c8b3f6f829bb背景最近组里gradle大神带大家一起飞,lz也趁机学习一下Gradle相关的知识。我们工程中的gradle的脚本几乎是我所见过的最复杂的工程(另一个是Tinker),里面有自定义的plugin,也有自己执行的一些脚本,如lint,时间监听,findbugs,Checkstyle等,也使用gra原创 2017-07-28 18:45:48 · 1272 阅读 · 0 评论 -
Android内存泄漏分析总结
详见我的简书 http://www.jianshu.com/p/f03c808c45741. android studio 下如何dump heapPaste_Image.png如图所示,在android studio下dump内存操作还是比较方便的。大致就是在minitor里面操作。恩,直接将得到的hprof导入mat(如果是使用 android原创 2017-07-28 18:48:20 · 467 阅读 · 0 评论 -
2016年干货小结
详见我的简书: http://www.jianshu.com/p/304ab3be30da16年过来,进了传说中的某厂,福利不错~~技术知识方面也有一些其他的收获,总结如下,对比一下技术:总体上来说,新东家程序员不用关心底层,只需关注业务逻辑和ui就好。老东家需要自己定义的地方比较多1. 架构上:新东家 mvvm + DataBinding猪厂那边则是传统mvc原创 2017-07-28 18:49:25 · 385 阅读 · 0 评论 -
recyclerView 进阶知识
详见我的简书 http://www.jianshu.com/p/de0aace99e15一 初级篇1. 请参照csdn上我的两篇:a android 5.0新特性 RecyclerView使用初级b Group分组列表的实现 RecyclerView ,实现不同类型的item组合列表二 进阶知识点:1. 设置Item的间距public class S原创 2017-07-28 18:51:02 · 565 阅读 · 0 评论 -
添加Intent.FLAG_ACTIVITY_CLEAR_TOP 都做了些什么
背景最近老是看到各种面试中的lanchMode和Intent Flag, 大多数分析停留在表面, 并且有些还自相矛盾。lz 最近做一个需求需要用Intent flag, 查阅了下相关资料, 并从源码论证了原因。添加Intent.FLAG_ACTIVITY_CLEAR_TOP我们来看看系统是怎么做的? 别问我怎么找到源码的,我不告诉你是通过androidxref查找的。整体流程原创 2018-01-29 17:49:49 · 667 阅读 · 0 评论 -
ListView的一个典型crash cannot be cast to android.widget.AbsListView$LayoutParams
1. 背景一个新版本的代码,在4.x版本进入某个页面的时候,必现crash。看到必现,心情就放松了一半。大致的crash信息如下:FATAL EXCEPTION: mainjava.lang.ClassCastException: android.support.v4.view.ViewPager$LayoutParams cannot be cast to android.wi原创 2018-01-29 17:50:35 · 1091 阅读 · 0 评论 -
ConstraintLayout 使用简介
一 背景ConstraintLayout 是目前是android studio 2.2 以后的默认根布局。 到目前为止,大家还是习惯常用的布局。同事先尝试了下ConstraintLayout优化布局层次,笔者也使用了下,发现确实比较好用。下面我们一起来试着使用布局吧~~二 demo来看下有个简单的布局是这个样子的image.png原创 2018-01-29 17:51:33 · 339 阅读 · 0 评论 -
android 进阶知识
1. java 必备知识(排序不分先后)反射(iOS中与运行时runtime类似)动态代理(cglib和原生)异常处理多线程知识(线程池等)2 android 框架mvp 个人比较喜欢的mvvmflux(facebook)感觉有点过重,解耦较彻底3 一些进阶细节知识(参见艺术探索)Activity 启动模式Binder自定义View、动画( xfmode原创 2016-04-11 19:47:47 · 685 阅读 · 0 评论 -
android studio 2.2 cmake ffmpeg 简单的播放器(这里只有视频解码)
背景在上一次的初次使用cmake编译jni后,这次cmake文件再次升级。利用网上的代码来编译一个简单的播放器。本文参照 Android+FFmpeg+ANativeWindow视频解码播放 一文,在cmake下重新编译。特将过程分享给大家。gradle 配置apply plugin: 'com.android.application'android { compi原创 2016-10-10 09:24:32 · 3892 阅读 · 8 评论 -
AsyncTask 源码阅读
1.参考资料1. http://developer.android.com/reference/android/os/AsyncTask.html2. http://blog.csdn.net/pi9nc/article/details/126227973. http://www.tuicool.com/articles/VnMf2i3下面详细解析Asynctask的源码流原创 2015-08-29 13:54:40 · 741 阅读 · 0 评论 -
Android Design Support Library的代码实验
原文: Codelab for Android Design Support Library used in I/O Rewind Bangkok session----Make your app fancy with few lines of code原文项目 demo: Lab-Android-DesignLibrary双语对照地址: 【翻-双语】Android Design Su转载 2015-10-06 15:40:44 · 597 阅读 · 0 评论 -
android 5.0新特性 RecyclerView使用初级
RecyclerView是google 用来取代ListView和GridView等控件。其很好地抽象出了ViewHolder等类。本文给出一个RecyclerView的demo:1.若是android studio 需要配置gradle 配置如下:dependencies { ... compile 'com.android.support:recycl原创 2015-10-10 18:42:32 · 1083 阅读 · 0 评论 -
Group分组列表的实现 RecyclerView(二)
分组列表在iOS、以及android实际项目中均比较常见 本文是使用强大的RecyclerView来实现分组列表。先看代码:1 首先activity_main.xml和android 5.0新特性 RecyclerView 使用初级主布局一样 不再赘述。2.MainActivity.java public class MainActivity extends ActionBarAct原创 2015-10-11 17:53:44 · 14011 阅读 · 2 评论 -
Android Design ItemTouchHelper实现酷炫列表的移行和滑动删除效果
ItemTouchHelper主要是作用在RecyclerView上。本文仍在android 5.0新特性 RecyclerView使用初级基础上。可以看到实现的列表右边的ImageView的样式是一般常见的编辑图片 即提示用户可以进行 列表的移行操作。不知道各位看官是否看个我的这篇文章:自定义View(三) switch开关按钮 ViewDragHelper的使用初级 。其实ViewDrag原创 2015-10-11 19:26:56 · 2216 阅读 · 2 评论 -
自定义 View 3d翻转动画 android
由于最近有个一翻转图片(view)的需求,写了个简单的翻转动画不多说上代码:自定义的animation需要重写的方法有: 1. public void initialize(int width, int height, int parentWidth, int parentHeight) 初始化,按英文名字大家应该能猜到 2.protected void applyTransfo原创 2015-09-13 22:11:59 · 1877 阅读 · 0 评论 -
各大热补丁方案分析和比较
最近开源界涌现了很多热补丁项目,但从方案上来说,主要包括Dexposed、AndFix、ClassLoader(来源是原QZone,现淘宝的工程师陈钟,在15年年初就已经开始实现)三种。前两个都是阿里巴巴内部的不同团队做的(淘宝和支付宝),后者则来自腾讯的QQ空间团队。开源界往往一个方案会有好几种实现(比如ClassLoader方案已经有不下三种实现了),但这三种方案的原理却徊然不同,那么转载 2015-11-26 18:30:14 · 1043 阅读 · 0 评论 -
ViewDragHelper 实现侧滑(二)
1 引言 android support v4中比较强大的类ViewDragHelper。自定义View(三) switch开关按钮 ViewDragHelper的使用初级 该文章粗略简述了ViewDragHelper的使用。本文进一步升级 使用ViewDragHelper类实现侧滑效果。注这里实现效果类似侧拉删除效果。(如果想实现侧拉删除效果需要自定义回调函数和处理逻辑 参照本文也原创 2015-12-12 16:58:05 · 711 阅读 · 0 评论 -
android 逆向 初级(一)
1. 解析class文件的工具:Java Decompilerhttp://jd.benow.ca/InstallationDownload and unzip the JD-Eclipse Update Site,Launch Eclipse,Click on "Help > Install New Software...",Click on button "Add.原创 2015-06-09 17:02:16 · 706 阅读 · 0 评论 -
android 逆向 初级系列(二)
1 引言 最近利用空闲时间学习了下smali语法,当然是为逆向破解服务的。本文是android apk的初级逆向教程,适用于菜菜鸟入门。本文的例子crackMe文件仅仅是在Java层加入了条件判断。本文将一步步解析破解过程(主要是使用工具过程)。升华篇的广告屏蔽什么的都可以在本文基础上实践练习。原创 2016-02-01 13:21:04 · 940 阅读 · 1 评论 -
MVVM + data-binding 快速入门
参见我的简书 :MVVM + data-binding 快速入门前言简书上data-binding 的文章不少,但真正用来实现MVVM架构的文章不多。有些是官方的guide(https://developer.android.com/topic/libraries/data-binding/index.html) 的翻译版本,且官方的guide的架构主要采用 data-bind原创 2016-08-29 14:27:58 · 2462 阅读 · 0 评论 -
Android ANR 分析学习总结
我的简书Android ANR 分析学习总结1. 什么情况下会发生anr(1). KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应(2). BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成(3). ServiceTimeout(20 seconds原创 2016-10-12 20:31:34 · 2661 阅读 · 0 评论 -
Android Architecture Components 之Lifecycle-Aware 的源码及trick
见我的简书 https://www.jianshu.com/u/c717eefe3f42一 背景google的Architecture Components Components(lz 简写AAC)出来好久了,但一直没时间阅读源码,趁最近空挡,阅读了AAC的源码,分享下阅读的理解。二 AAC是个什么东西其实,AAC就是google提出的一种app开发框架,里面最基础的应该就是Lifecycle-A...原创 2018-04-09 19:49:37 · 382 阅读 · 0 评论