- 博客(148)
- 资源 (25)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 android 进阶知识
1. java 必备知识(排序不分先后)反射(iOS中与运行时runtime类似)动态代理(cglib和原生)异常处理多线程知识(线程池等)2 android 框架mvp 个人比较喜欢的mvvmflux(facebook)感觉有点过重,解耦较彻底3 一些进阶细节知识(参见艺术探索)Activity 启动模式Binder自定义View、动画( xfmode
2016-04-11 19:47:47
684
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 android的一些大神博客(留底)
转自 https://github.com/android-cn/android-dev-com国外部分开发者信息vatarGithubBlogDescriptionhttps://github.com/googlehttp://android-developers.blogspot.com/Google Android Deve
2015-08-16 22:59:42
1212
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 iOS 进阶知识(框架)
iOS技术:runtimeOpenGL(CoreGraphics、QuartzCore、Core animation以及spring弹簧动画、音视频剪辑处理)xmpp即时通信流媒体(ffmpeg+本地server+html5、VCL)比较生僻知识(iOS7 推出的语音识别库 、蓝牙、内购、ios8 扩展(today 、share)、coreText)画图三方(图表 core Plot
2014-12-21 15:13:31
1001
原创 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
376
原创 ConstraintLayout 使用简介
一 背景ConstraintLayout 是目前是android studio 2.2 以后的默认根布局。 到目前为止,大家还是习惯常用的布局。同事先尝试了下ConstraintLayout优化布局层次,笔者也使用了下,发现确实比较好用。下面我们一起来试着使用布局吧~~二 demo来看下有个简单的布局是这个样子的image.png
2018-01-29 17:51:33
336
原创 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
1086
原创 添加Intent.FLAG_ACTIVITY_CLEAR_TOP 都做了些什么
背景最近老是看到各种面试中的lanchMode和Intent Flag, 大多数分析停留在表面, 并且有些还自相矛盾。lz 最近做一个需求需要用Intent flag, 查阅了下相关资料, 并从源码论证了原因。添加Intent.FLAG_ACTIVITY_CLEAR_TOP我们来看看系统是怎么做的? 别问我怎么找到源码的,我不告诉你是通过androidxref查找的。整体流程
2018-01-29 17:49:49
661
原创 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
546
原创 2016年干货小结
详见我的简书: http://www.jianshu.com/p/304ab3be30da16年过来,进了传说中的某厂,福利不错~~技术知识方面也有一些其他的收获,总结如下,对比一下技术:总体上来说,新东家程序员不用关心底层,只需关注业务逻辑和ui就好。老东家需要自己定义的地方比较多1. 架构上:新东家 mvvm + DataBinding猪厂那边则是传统mvc
2017-07-28 18:49:25
380
原创 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
463
原创 Gradle plugin自定义
详见我的简书 http://www.jianshu.com/p/c8b3f6f829bb背景最近组里gradle大神带大家一起飞,lz也趁机学习一下Gradle相关的知识。我们工程中的gradle的脚本几乎是我所见过的最复杂的工程(另一个是Tinker),里面有自定义的plugin,也有自己执行的一些脚本,如lint,时间监听,findbugs,Checkstyle等,也使用gra
2017-07-28 18:45:48
1262
原创 PagerAdapter闪屏坑的修复
详见 http://www.jianshu.com/p/29b708c62b33背景最近在填前同事的一个坑时,不小心遇到另外一个坑。 在一个礼物面板,原实现是gridView + ViewPager实现的(有几页礼物),在送用户免费礼物时,刷新ViewPager里面的item时,出现了闪屏。其实很多童鞋知道,PagerAdapter在调用notifyDataSetChang
2017-07-28 18:44:33
1296
原创 TabLayout double click 标题回顶部
背景产品同学要求了一个很反常的需求,双击tab标题,回到页面顶部,哎,作为一名程序猿首先想到的是pk掉,无奈之下做了本功能。于是就发现了google 的sdk里面的bug,哎,写这些代码的人多半是实习生(锅先甩出去,逃~~)实现双击回顶部这里的实现实际上很简单,唯一难点在于怎么区分单击还是双击(tab切换)。不多说,很快就写出如下代码:tabLayout.setOnTa
2017-07-28 18:42:55
688
原创 属性动画源码分析
详见我的简书 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
517
原创 IjkPlayer 源码阅读一 初始化
详见我的简书 http://www.jianshu.com/p/9b0675da83801 背景公司的底层播放器实际上是ffplayer作为基础修改的,当然需要好好学习研究。 记录下来,作为以后备忘。(发觉人老了,就容易忘事)。ps 入坑需谨慎,很容易入门到放弃。2 分析入口分析的连接https://github.com/Bilibili/ijkplayer版本
2017-07-28 18:39:36
4869
1
原创 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
2644
原创 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
3875
8
原创 data-binding 踩坑记
原文见 我的简书 1. 如何向单个view传递多个binding参数a. 在BindingAdapter中定义@BindingAdapter({"position", "info"}) public static void renderView(View view, int position, Info info) { view.renderView(
2016-10-02 14:49:28
736
原创 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
1849
3
原创 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
2456
原创 JsBridge 源码分析
原文可参考我的简书: http://www.jianshu.com/p/fce3e2f9cabc源码:https://github.com/lzyzsd/JsBridge1 背景近年来混合框架很火,一些大型的公司如BAT的移动客户端app几乎都采用了混合架构。这样实现有什么好处呢?首先就必须了解采用webview开发和采用原生开发的客户端的优缺点。这里我仅列举个人的观点
2016-05-31 12:51:31
1893
原创 音频开发ijkplayer小结 android
我的简书:http://www.jianshu.com/p/55fbfd5b564a最近接触到一些音频开发的操作和一个音频开发的三方库:github:https://github.com/Bilibili/ijkplayer。有人会问为什么使用三方库:最直接原因当然是因为系统的MediaPlayer支持格式不多或者是版本限制。具体只支持格式:http://developer
2016-04-20 23:34:50
14030
1
翻译 Butterknife 简单使用
介绍Activity中使用@Bind来对id进行绑定。class ExampleActivity extends Activity { @Bind(R.id.title) TextView title; @Bind(R.id.subtitle) TextView subtitle; @Bind(R.id.footer) TextView footer; @Overri
2016-04-12 13:47:47
641
原创 IntelliJ IDEA spring mvc +mybatis 环境搭建服务器(下)
上篇是使用xml配置来完成mysql数据库的操作,本文将使用注解形式,当然由于本文是较基础的入门级,存在许多地方欠考虑的地方,请大家多包涵。由于代码较简单就省略注释和讲解了。来自我的简书: http://www.jianshu.com/p/32f15e199572直接使用类来生成Mapper:package com.nothing.Mapper;import com.noth
2016-04-11 22:16:36
1111
原创 recyclerView 的坑
一 recyclerView 的bug 1.https://code.google.com/p/android/issues/detail?id=77846该问题现在还没有解决。本人是在recyclerView 从内存中重启的时候 ,想保存一个排序和原始数据恢复位置时遇到。这里特别指出fragment的生命周期:onCreateView -> onViewCreated
2016-04-06 18:50:51
2040
原创 IntelliJ IDEA spring mvc +mybatis 环境搭建服务器(中)
我的简书连接:http://www.jianshu.com/p/1730df498855这里使用的是xml配置mybatis,如喜欢注解,请待下一篇。1 修改配置,引入json、mybatis在pom.xml中添加mybatis-spring、mybatis、mysql-connector-java(用于mysql连接)、jackson-core、jackson-datab
2016-03-20 17:44:23
1459
转载 蘑菇街 App 的组件化之路·续
转自: http://limboy.me/ios/2016/03/14/mgj-components-continued.html前几天在「移动学习分享群」分享了关于蘑菇街组件化方面的一点经验,由于时间和文字描述方面的限制,很多东西表述的不是很清楚,让一些同学产生了疑惑,casatwy老师也写了篇文章来纠正其中的一些实现,看完之后确实有不少启发。统一的调用实现将「URL 调
2016-03-19 15:03:23
3299
转载 蘑菇街 App 的组件化之路
转自 http://limboy.me/ios/2016/03/10/mgj-components.html在组件化之前,蘑菇街 App 的代码都是在一个工程里开发的,在人比较少,业务发展不是很快的时候,这样是比较合适的,能一定程度地保证开发效率。慢慢地代码量多了起来,开发人员也多了起来,业务发展也快了起来,这时单一工程开发模式就会显露出一些弊端耦合比较严重(因为没有明
2016-03-19 14:52:53
1876
转载 iOS 组件化方案探索
转自 :http://blog.cnbang.net/tech/3080/看了 Limboy(文章1 文章2) 和 Casa (文章) 对 iOS 组件化方案的讨论,写篇文章梳理下思路。首先我觉得”组件”在这里不太合适,因为按我理解组件是指比较小的功能块,这些组件不需要多少组件间通信,没什么依赖,也就不需要做什么其他处理,面向对象就能搞定。而这里提到的是较大粒度的业务功能,
2016-03-19 14:45:29
514
转载 从零开始的Android新项目2 - Gradle篇
转自:http://blog.zhaiyifan.cn/2016/03/14/android-new-project-from-0-p2/ 相信大家的项目用上gradle都已经很久了,但用得如何呢?这里分享一下我的gradle脚本,大部分都是去年6月左右就开始用上的,有一部分比如签名的安全保存则是最近才自己动手,做了令自己觉得还不错的方案。module类型的区分科普小结,可
2016-03-19 14:32:55
772
原创 IntelliJ IDEA spring mvc +mybatis 环境搭建服务器(上)
图片贴不过来,可以看我的简书(http://www.jianshu.com/users/c717eefe3f42/latest_articles)所需软件Intellij IDEA Ultimate (一定要这个版滴,不过需要收费,别问我为什么,说多了都是泪,半夜没睡找不到tomcat部署项目,建议用最新版)Tomcat (下下来,解压即可使用,测试方式进入tomcat解压包的
2016-03-06 22:40:42
1250
原创 android 逆向 初级系列(二)
1 引言 最近利用空闲时间学习了下smali语法,当然是为逆向破解服务的。本文是android apk的初级逆向教程,适用于菜菜鸟入门。本文的例子crackMe文件仅仅是在Java层加入了条件判断。本文将一步步解析破解过程(主要是使用工具过程)。升华篇的广告屏蔽什么的都可以在本文基础上实践练习。
2016-02-01 13:21:04
936
1
原创 NestedScrollView 嵌套 ListView 实现滑动折叠效果
NestedScrollView 嵌套 ListView 替代 RecyclerView实现折叠效果
2016-01-30 16:53:18
7515
6
转载 36个Android开发常用代码片段
转自:http://www.phpxs.com/code/1001775拨打电话123publicstatic void call(Context context, String phoneNumber) { context.startActivity(newInten
2016-01-30 14:25:40
875
原创 android design Behavior 初见
1. 先上图2. 引言 在android design 库中,增添了许多的控件,如前文转载的文章Android Design Support Library的代码实验 。该库中CoordinatorLayout是其中比较强大的类,承担协调View的责任。如一个view的滚动,相应的另一个view做对应处理。其强大处理能力得益于其内部类Behavior。传统实现两个v
2016-01-06 18:39:20
655
原创 android shell 常用的命令
在cmd 先输入adb shell(1-2):1. 查看当前resume的是哪个activity: dumpsys activity | grep mResumedActivity2.resume的Activity dumpsys activity | grep mFocusedActivity3 卸载apk: adb uninst
2015-12-25 21:06:40
545
原创 ViewDragHelper 实现侧滑(二)
1 引言 android support v4中比较强大的类ViewDragHelper。自定义View(三) switch开关按钮 ViewDragHelper的使用初级 该文章粗略简述了ViewDragHelper的使用。本文进一步升级 使用ViewDragHelper类实现侧滑效果。注这里实现效果类似侧拉删除效果。(如果想实现侧拉删除效果需要自定义回调函数和处理逻辑 参照本文也
2015-12-12 16:58:05
708
转载 Android批量打包提速 - 1分钟900个市场不是梦
黎明前的黑暗使用Ant或者Gradle来给程序进行多渠道批量打包,通常都是在manifest文件中写入一个meta标签:meta-data android:name="CHANNEL" android:value="xxx" />meta的key值固定,通过循环改变meta中的value值来实现市场渠道的写入。Ant批量打包实现相对麻烦,以前写的时候多亏了 谦虚的天下-
2015-12-06 17:05:41
460
转载 Gradle多渠道打包 (1)
原文链接: http://stormzhang.com/devtools/2015/01/05/android-studio-tutorial6/由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了。友盟多渠道打包废话不多说,以友盟统计为例,在A
2015-12-06 17:02:22
385
原创 Android Studio编译大工程报错:java.exe'' finished with non-zero exit value 1 or exit value 2
在公司 好好的项目在家突然没法跑 遇到如下问题:1. java.exe'' finished with non-zero exit value 1找了下原来在我低配机子 项目都没法跑:dexOptions { javaMaxHeapSize"xx"}修改下参数。2 java.exe'' finished with non-zero exit value 2这个报错
2015-11-28 20:41:39
657
andriod、iOS服务器端代码
2015-04-14
iOS人机界面指导手册
2013-05-30
UITableView中行的操作
2013-05-27
UITableView与UITableViewCell
2013-05-27
分组的表格
2013-05-27
UITableViewCell
2013-05-27
UIDatePicker与UIPickerView
2013-05-26
使用Tab Bar切换视图和ToolBar切换视图
2013-05-26
iOS开发6:UIActionSheet与UIAlertView
2013-05-26
iOS_5_Core_Image_教程
2013-05-22
AFNetworking速成教程
2013-05-21
iOS5 Tutorials
2013-05-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人