首页
学习
活动
专区
工具
TVP
发布

Android 开发学习

专栏作者
31
文章
39428
阅读量
29
订阅数
ListView的一个典型crash cannot be cast to android.widget.AbsListView$LayoutParams1. 背景2. 为什么会出现crash3.
1. 背景 一个新版本的代码,在4.x版本进入某个页面的时候,必现crash。看到必现,心情就放松了一半。 大致的crash信息如下: FATAL EXCEPTION: main java.lang.ClassCastException: android.support.v4.view.ViewPager$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams at android.widget.ListView.se
用户1127566
2018-06-06
1.2K0
添加Intent.FLAG_ACTIVITY_CLEAR_TOP 都做了些什么背景整体流程
背景 最近老是看到各种面试中的lanchMode和Intent Flag, 大多数分析停留在表面, 并且有些还自相矛盾。lz 最近 做一个需求需要用Intent flag, 查阅了下相关资料, 并从源码论证了原因。添加Intent.FLAG_ACTIVITY_CLEAR_TOP我们来看看系统是怎么做的? 别问我怎么找到源码的,我不告诉你是通过androidxref查找的。 整体流程 private int startActivityUnchecked 整体的逻辑就在这个函数中了,逻辑也比较清楚, setI
用户1127566
2018-06-06
6640
属性动画源码分析分析版本api 24
分析版本api 24 首先我们要找一个入口,就从ObjectAnimator.ofInt(this, "width", 0, -20).start()开始吧,其他动画都是类似的。 先看参数构造 ObjectAnimator.ofInt(this, "currentProgress", 0, progress) / * * @param target The object whose property is to be animated. * @param property The
用户1127566
2018-06-06
6620
TabLayout double click 标题回顶部
背景 产品同学要求了一个很反常的需求,双击tab标题,回到页面顶部,哎,作为一名程序猿首先想到的是pk掉,无奈之下做了本功能。于是就发现了google 的sdk里面的bug,哎,写这些代码的人多半是实习生(锅先甩出去,逃~~) 实现双击回顶部 这里的实现实际上很简单,唯一难点在于怎么区分单击还是双击(tab切换)。不多说,很快就写出如下代码: tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
用户1127566
2018-06-06
1.1K0
ConstraintLayout 使用简介一 背景二 demo三 进一步升级打怪四 更多
一 背景 ConstraintLayout 是目前是android studio 2.2 以后的默认根布局。 到目前为止,大家还是习惯常用的布局。同事先尝试了下ConstraintLayout优化布局
用户1127566
2018-06-06
2.4K0
Android Architecture Components 之LiveData, ViewModel
一 入口 阅读源码需要从源码的入口处着手,先看先官方的例子(https://developer.android.com/topic/libraries/architecture/livedata): ViewModel public class NameViewModel extends ViewModel { // Create a LiveData with a String private MutableLiveData<String> mCurrentName; public Muta
用户1127566
2018-06-06
7250
IjkPlayer 源码阅读一 初始化
1 背景 公司的底层播放器实际上是ffplayer作为基础修改的,当然需要好好学习研究。 记录下来,作为以后备忘。(发觉人老了,就容易忘事)。ps 入坑需谨慎,很容易入门到放弃。 2 分析入口 分析的连接https://github.com/Bilibili/ijkplayer 版本号: 0.8.1.2 android版 基本上IjkPlayer的接口和MediaPlayer接口一致。http://www.jianshu.com/p/55fbfd5b564a 每次我们发觉分析源码总找不到下口的地方,实
用户1127566
2018-06-06
2.2K0
Android ANR 分析学习总结
1. 什么情况下会发生anr (1). KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应 (2). BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成 (3). ServiceTimeout(20 seconds) --小概率类型 Service在特定的时间内无法处理完成 2. KeyDispatchTimeout超时原因 (1). 当前的事件没有机会得到处理(即UI线程正在处理
用户1127566
2018-06-06
2.1K0
IntelliJ IDEA spring mvc +mybatis 环境搭建服务器(下)直接使用类来生成Mapper:
上篇是使用xml配置来完成mysql数据库的操作,本文将使用注解形式,当然由于本文是较基础的入门级,存在许多地方欠考虑的地方,请大家多包涵。由于代码较简单就省略注释和讲解了。 直接使用类来生成Mapper: package com.nothing.Mapper; import com.nothing.Model.User; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; im
用户1127566
2018-06-06
4810
NestedScrollView 嵌套 ListView 实现滑动折叠效果
引言 最近,在做公司一个design折叠效果的时候遇到个问题,就是我们本身app的方法数太多了,dex分包技术还没搞定。不得不尽量缩减一些不必要的包、类。当我们引入RecyclerView的时候,恰好
用户1127566
2018-06-06
3.3K0
IntelliJ IDEA spring mvc +mybatis 环境搭建服务器(上)
所需软件 Intellij IDEA Ultimate (一定要这个版滴,不过需要收费,别问我为什么,说多了都是泪,半夜没睡找不到tomcat部署项目,建议用最新版) Tomcat (下下来,解
用户1127566
2018-06-06
9390
android 逆向 初级系列(二)
1. 引言 最近利用空闲时间学习了下smali语法,当然是为逆向破解服务的。本文是Android apk的初级逆向教程,适用于菜菜鸟入门。本文的例子crackMe文件仅仅是在Java层加入了条件判断。本文将一步步解析破解过程(主要是使用工具过程)。升华篇的广告屏蔽什么的都可以在本文基础上实践练习。(说明,本例需要在机子上安装android killer软件和海马或夜神模拟器)。 原文是我的csdn: http://blog.csdn.net/nothingl3/article/details/50615
用户1127566
2018-06-06
1.1K0
Android Architecture Components 之Lifecycle-Aware 的源码及trick
一 背景 google的Architecture Components Components(lz 简写AAC)出来好久了,但一直没时间阅读源码,趁最近空挡,阅读了AAC的源码,分享下阅读的理解。 二 AAC是个什么东西 其实,AAC就是google提出的一种app开发框架,里面最基础的应该就是Lifecycle-Aware了。 在这之前,我们组开发采用的mvvm + data binding 模式。 这个模式中,我们常常这样一个需求, 我们需要在fragment onDestroy 或 onPause时,
用户1127566
2018-06-04
7590
PagerAdapter闪屏坑的修复
背景 最近在填前同事的一个坑时,不小心遇到另外一个坑。 在一个礼物面板,原实现是gridView + ViewPager实现的(有几页礼物),在送用户免费礼物时,刷新ViewPager里面的item时,出现了闪屏。 其实很多童鞋知道,PagerAdapter在调用notifyDataSetChanged(), 如果使用默认的会不起作用 点进notifyDataSetChanged() /** * This method should be called by the application if
用户1127566
2018-06-04
1.9K0
2016年干货小结
16年过来,进了传说中的某厂,福利不错~~技术知识方面也有一些其他的收获,总结如下,对比一下技术: 总体上来说,新东家程序员不用关心底层,只需关注业务逻辑和ui就好。 老东家需要自己定义的地方比较多 1. 架构上: 新东家 mvvm + DataBinding 猪厂那边则是传统mvc,比较笨重,一个Activity中代码上1000行,业务逻辑全糅杂在里面了。 2. 三方库: 新东家其实很少直接使用三方库,一般都进行了些优化借鉴参考或改写,老东家直接拿来使用。 分情况说: a. 网络请求 新东家自己做了
用户1127566
2018-06-04
4090
android studio 的几个好用的工具
代码调优 1. lint 检查 http://www.carrotsight.com/2016/01/29/%E6%B5%85%E8%B0%88Android%E8%87%AA%E5%AE%9A%E4%B9%89Lint%E8%A7%84%E5%88%99%E7%9A%84%E5%AE%9E%E7%8E%B0%20%EF%BC%88%E4%B8%80%EF%BC%89.html https://github.com/yongce/AndroidDevNotes/blob/master/notes/know
用户1127566
2018-06-04
9070
最近需要做的事技术上需要实践的
技术上 学习tinker(使用+ 源码 + 自定义task) Gradle transform api使用 Gradle 自定义task ,由于我们工程的配置几乎是我所见过最复杂Gradle 配置(基本完成) ffmpeg 相关源码学习 java的源码阅读 任教主的书,之前读binder确实比较痛苦,实践后发觉读起来舒服多了。 ijkPlayer 源码 J.U.C 架构学习(设计) weex 学习 需要实践的 简单的播放器(音频播放, 音视频同步) 直播
用户1127566
2018-06-04
4210
python 遍历toast msg文本背景简易语法介绍1. 查找目录下所有java文件查找Java文件中的Toast在对应行中找出对应的id使用id在String中查找对应的toast提示信息。
背景 最近有个简单的迭代需求,需要统计下整个项目内的Toast的msg, 这个有人说直接快捷键查找下,但这里比较坑爹的是项目中查出对应的有1000多处。妈呀,自己查找,还要根据查找id找到对应string,比较坑。于是就顺带练手写了个python脚本来处理这个问题。当然编码相对不太规范,异常处理也没做。由于lz好久没写过python脚本了,相当生疏。几乎是边查文档编写,记录写编写过程: 查找目录下所有java文件 查找Java文件中含有Toast相关的行 在对应行中找出对应的id 使用id在String中查
用户1127566
2018-06-04
3.9K0
Gradle plugin自定义
背景 最近组里gradle大神带大家一起飞,lz也趁机学习一下Gradle相关的知识。我们工程中的gradle的脚本几乎是我所见过的最复杂的工程(另一个是Tinker),里面有自定义的plugin,也
用户1127566
2018-06-04
5650
recyclerView 进阶知识
一 初级篇 1. 请参照csdn上我的两篇: a android 5.0新特性 RecyclerView使用初级 b Group分组列表的实现 RecyclerView ,实现不同类型的item组合列表 二 进阶知识点: 1. 设置Item的间距 public class SpaceItemDecoration extends RecyclerView.ItemDecoration { private final int mLeft; private final int mTop;
用户1127566
2018-06-04
1.1K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档