
Android开发
sugaryaruan
Android Developer,Kotlin lover,CodeThings公众号作者
展开
-
adb连接不上,e00002be问题踩坑
上周升级了Mac OS到10.13.6,前天使用Android Studio带的手机模拟器运行App,第二天真机连接笔记本无法识别,adb一直处在初始化状态。错误信息如下: daemo not running, starting no at tcp Terminated: 15 Unable to create an interface plug-in(e00002be...原创 2018-07-25 10:59:58 · 3699 阅读 · 5 评论 -
support-v7:24.2.0中的新工具类DiffUtil的使用方法
本文转载自:http://blog.youkuaiyun.com/zxt0601/article/details/52562770一 概述DiffUtil是support-v7:24.2.0中的新工具类,它用来比较两个数据集,寻找出旧数据集-》新数据集的最小变化量。 说到数据集,相信大家知道它是和谁相关的了,就是我的最爱,RecyclerView。 就我使用的这几天来看,它最大的用处就转载 2016-09-23 01:07:58 · 1632 阅读 · 0 评论 -
RxBus学习之旅--从入门到提高
在公司的技术分享会上,做了关于RxBus的学习分享,记录如下:一.RxBus与RxJava一次RxJava调用过程可以划分为以下环节:创建观察内容 (片段1)数据处理/映射(片段2)选择线程(片段3)订阅(片段4,片段5)完成/错误处理(片段6)示例代码:Observable // 片段1 .create(new Observabl原创 2016-08-13 21:16:24 · 4227 阅读 · 0 评论 -
当RecyclerView遇到Inconsistency detected崩溃时
近来项目里,RecyclerView更新数据偶尔出现crash,错误日志如下:java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{2064e5c6 position=2 id=-1, oldPos=2, pLpos:-1 scrap [a原创 2016-07-20 15:33:33 · 11884 阅读 · 0 评论 -
自动读取短信验证码LoaderManager和CursorLoader的使用
已开通简书博客,欢迎拍砖。Cursor用来直接读取安卓手机里的数据库记录,如何获取到Cursor?可以通过SQLiteOpenHelper,打开SQLiteDatabase通过ContentProvider/ContentResolver获取自动读取验证码实现思路:当验证码的短信到来,能有个监听回调或者广播之类,告知开发人员读取短信是危险权限,android6.0权限适配获取验证码的短信原创 2016-07-06 18:52:57 · 644 阅读 · 0 评论 -
setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
文章转自:http://blog.youkuaiyun.com/wulianghuan/article/details/24421179更换radiobutton中的图片在xml中很好设置,但对于初学者如何在代码中设置还是不容易找的。没法子,通过看原版api找到两个方法,setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds转载 2016-06-30 01:19:18 · 575 阅读 · 0 评论 -
TCP/Protobuf之Protocol Buffers配置指南
使用Protobuf,先配置环境,以下是配置Protobuf的步骤和编译Protobuf原文件的步骤Java:Compiled Environment Download:https://github.com/google/protobuf/releases/download/v3.0.0-beta-3/protobuf-java-3.0.0-beta-3.zipInstall:$ ./configu原创 2016-06-27 14:43:10 · 1543 阅读 · 0 评论 -
TCP/Protobuf之Netty学习
在熟悉了解Netty框架的过程中,阅读了大量的文章,有些资料干货较多,记录如下:Netty官网Netty4服务端心跳机制Netty 4.x User Guide 中文翻译《Netty 4.x 用户指南》Netty系列之Netty高性能之道Netty TCP client with reconnect handling(自备梯子)有了上述的学习,实践动手写几个Demo,对Netty就有了一个入门的了解原创 2016-06-27 14:21:20 · 706 阅读 · 0 评论 -
TCP/Protobuf之基础知识准备
最近项目里,引入了TCP,通过protobuf,在App里来获取司机的经纬度信息。还使用到了Netty,本篇先对涉及到的基础知识做了梳理。Socket套接字之间的连接过程分为三个步骤:服务器监听客户端请求连接确认。Java NIO的通道类似流,但又有些不同:流只是在一个方向上移动(一个流必须是 InputStream 或者 OutputStream 的子类),而通道可以用于读、写或者同时用原创 2016-06-27 14:10:26 · 4433 阅读 · 1 评论 -
[读书笔记之App研发录]异常问题汇总(1)
开发中遇到的异常问题子线程不能修改UI只有原始创建这个视图层次的线程才能修改它的视图,而android的视图最初都是主线程创建的,所以才有这么一说:UI控件的更新放在主线程中,否则会产生不可预知的错误。对于TextView的内容更新,却发现在子线程中也能运行良好。这个现象一反上面的结论。如果在更新TextView内容之前让线程等待几秒时间,就会抛出子线程更新控件的异常信息。有一个方法requestL原创 2016-05-03 00:39:32 · 664 阅读 · 0 评论 -
[读书笔记之安卓开发艺术探索]View的事件体系前的知识准备
零碎的知识View的位置参数x,控件左上角在父容器中的x坐标像素值y,控件左上角在父容器中的y坐标像素值translationX,存在平移过程,控件在x轴上偏移的像素值translationY,存在平移过程,空间在y轴上偏移的像素值left,控件左上角在父容器中横坐标的像素值right,控件左上角在父容器中纵坐标的像素值top,控件右下角在父容器中横坐标的像素值bottom,控件右下原创 2016-03-02 17:47:21 · 606 阅读 · 0 评论 -
Android Studio - MAC 版 - 快捷键详解
要点总结 : -- 熟练使用快捷键 : 在任何编程环境中, 熟练使用环境提供的快捷键会大大提高编程效率, 在 Android Studio 中也不例外, 熟练使用其快捷键是 Android 开发者必备的技能之一, 这里根据官网提供的列表, 我自己总结使用了一遍, 将快捷键使用记录以及使用后的效果都展示给大家; -- 只适用于 MAC 操作系统 : 该快捷键总结的时 MAC 中的 And转载 2015-12-27 12:53:28 · 1791 阅读 · 0 评论 -
@SuppressLint("NewApi")和@TargetApi(number)使用比较
转载自:@SuppressLint("NewApi")和@TargetApi()的区别在Android代码中,我们有时会使用比我们在AndroidManifest中设置的android:minSdkVersion版本更高的方法,此时编译器会提示警告,解决方法是在方法上加上@SuppressLint("NewApi")或者@TargetApi()。那他们之间有什么区别呢,转载 2015-12-24 15:46:43 · 1011 阅读 · 0 评论 -
Viewpager切换的淡入淡出切换(页面不移动)
本文转载自:http://blog.youkuaiyun.com/qq_22770457/article/details/52133288纯手工自制的Android引导页,实现了Viewpager切换的淡入淡出(页面不移动!)切换以及文字动画。下面是效果演示:实现思路+心路历程...:其实别的都还蛮简单的,就是这个ViewPager的淡入淡出切换动画比较转载 2016-09-22 13:35:01 · 4353 阅读 · 1 评论 -
Android的消息机制
碰巧昨天又一次看了苹果广告Think different,震撼之余还有感动。广告词如下:Here’s to the crazy ones.The misfits.The rebels.the troublemakers.The round pegs in the square holes.The ones who see things differently.They’re not fond of原创 2016-11-12 16:07:05 · 460 阅读 · 0 评论 -
Kotlin项目上传jcenter躺坑记
前段时间写了一个下拉列表的自定义控件,造了轮子就想对外分享。如何上传代码到Maven仓库(Jcenter)呢?刷了文章,查阅了几处文档。多个语言项目发布JCenter仓库的小结Gradle版本和gradle 插件版本对照关系Github:novoda/bintray-release我采用了“多个语言项目发布JCenter仓库的小结”一文使用的方案,这个过程我遇到了两个坑,记录如下:...原创 2018-07-06 13:40:15 · 983 阅读 · 2 评论 -
【基础篇】Kotlin第三讲-扩展函数和其他
集合的创建与遍历Kotlin没有采用它自己的集合类,而是采用标准的Java集合类。大部分Kotlin的标准库是由Java类的拓展函数组成的。创建集合Kotlin中对集合增加了一个新的接口MutableList,实现该接口的集合是可变集合。Kotlin中,集合分为可变集合和不可变集合。public interface MutableList<E> : List&l...原创 2018-05-07 21:49:15 · 544 阅读 · 0 评论 -
Kotlin初入茅庐
年前快速地过了一遍Kotlin语法。这回计划花上半年的时间,从代码细节上重新系统的梳理一遍Kotlin语言。当然,性价比最高的方式是通过Kotlin开发项目来学习。同样表示变量var与val有什么区别?val = 加了final的变量val message = "Kotlin" // final String message = "Kotlin";var count = 0v...原创 2018-04-05 11:13:28 · 328 阅读 · 0 评论 -
快速查看Gradle项目包依赖情况
Gradle项目中,导入依赖包和并对其管理是开发人员绕不开的事情,在导入的过程中,一不小心就会遇到新导入的依赖库和原有的类库冲突的问题,我在之前的一篇文章遇到异常Multiple dex files define时里提供了解决方法。本文对如何定位依赖冲突这个环节提供更多的方法方式1./gradlew 模块名:dependencies这个命令会打印出该模块下的所有第三方类库的依赖情...原创 2018-04-11 23:28:29 · 48664 阅读 · 0 评论 -
开启Kotlin编程之旅&Java程序员的思维进化
本周在部门进行了一场Kotlin分享,于是有了这篇文章Kotlin编程语言简介由Intelij IDEA生产商JetBrains开源 2011年开始,2016年初发布1.0正式版,目前最新1.2.31 基于JVM平台,JS平台和Native本地平台的编程语言静态的,支持函数式编程范式与Java语言极高的兼容和互操作Kotlin的生态环境GitHub star 2万多 K...原创 2018-03-29 09:35:16 · 280 阅读 · 0 评论 -
安卓EditText-实现输入小数点后几位的逻辑演变
我的简书博客 sugaryaruan 传送门简介在Android开发中,时不时需要用户输入一些数据,有输入就有格式上的要求。比如EditText输入金额时,通常要保留小数点后两位,这个如何实现呢?首先在布局文件里,通过android:inputType限定EditText输入的内容,numberDecimal表示只能输入带小数点的浮点格式 <EditText原创 2017-02-26 16:09:17 · 1426 阅读 · 0 评论 -
自定义上拉加载更多-增强型RecyclerView的实现
简述同步更新:传送门简述该增强型RecyclerView,增加了以下特性:上拉滑动到底部,加载更多支持添加Header头视图支持加载数据为空时,显示特定视图支持拖拽,侧滑删除下拉刷新实现通过给RecyclerView包一层SwipRefreshLayout来实现。本文重点分享上拉加载更多的实现,同时实现添加头部视图,侧滑,拖拽功能实现,该实现存在以下注意点:如何判断RecyclerVie原创 2017-01-23 17:58:45 · 1118 阅读 · 0 评论 -
Android程序猿的Sketch学习之旅
简书博客同步更新 传送门Sketch专为App绘图场景而生,也可以少量处理位图图片。通过下午3个小时的官方用户文档中文版的阅读和实践,我发现Sketch真得做到了“花最少的时间就能上手的绘图工具,让你专注于设计本身”熟练使用Sketch需要理解一些概念:选区图层群组切片: 画布中的特定区域导出为一个文件符号(Symbol),类似于布局文件里的标签蒙板,这个的作用类似安卓里的SetXfer原创 2017-01-06 09:20:26 · 2366 阅读 · 0 评论 -
安卓刮刮卡的另一种实现
欢迎关注我在简书的博客:http://www.jianshu.com/users/7ea7e9945ab6/latest_articles效果如下: 实现思路网上有使用Xfermode来实现刮刮卡,这里提供另一种思路简洁的实现一张呱呱卡有三层,最底层我用一个TextView控件显示中奖内容,中间层是刮完之后的显示图样,最上面一层是刮刮卡的封面。手指刮除封面的过程就是把刮刮卡最上面一层裁剪的过程。涉原创 2016-12-22 15:35:50 · 665 阅读 · 0 评论 -
当Window遇到Mac OS出现Permission Denied/Could not expand时
错误场景最近用gradle打包安卓新项目时./gradlew assembleRelease出现Permission Denied提示在检查gradle配置信息无误后,使用管理员权限打包sudo ./gradlew assembleRelease这样能顺利打包,不过使用debug调试模式编译项目时,依然报错:Could not expand…我遇到的错误忘记记录了,大概类似如下的错误:Execu原创 2016-12-10 14:32:13 · 1539 阅读 · 0 评论 -
Android线程和线程池
本文是阅读安卓开发艺术探索一书第十一章的笔记和延伸感想 简书同步更新,传送门概述Android中扮演线程角色的有:Thread,AsyncTask,IntentService,HanderThread…当线程数大于CPU核数时,需要通过时间片轮转方式来调度线程。AsyncTask封装了Thread和Handler的异步任务,提供/重写四个核心方法onPreExecute()doInBackgr原创 2016-11-12 16:09:49 · 431 阅读 · 0 评论 -
scheme,host,port,mimeType,path,pathPrefix,pathPattern用法
本文转载自:intent-filter 之 data 「scheme, host, port, mimeType, path, pathPrefix, pathPattern」一、定义 scheme, host, port, path, pathPrefix, pathPattern 是用来匹配 Intent 中的 Data Uri 的。具体规则如下:转载 2015-12-22 16:12:59 · 3320 阅读 · 0 评论 -
字母表自定义控件的实现
由于项目需要,自己实现了一个国家电话代码和国家名的字母表自定义控件,UI设计上参考了微信联系人字母列表。不过相比于微信的字母列表控件,我优化了两个体验点点击字母表时,被点击的字母高亮显示。字母表字母随左侧国家名滑动而闪动。源码已上传到github上,欢迎下载。点击进入原创 2015-12-19 19:10:08 · 492 阅读 · 0 评论 -
Android项目重构的一些认识和思考
确切的说,本文是一篇读书笔记,阅读了三篇Android重构的文章:Android项目重构之路:架构篇Android项目重构之路:界面篇Android项目重构之路:实现篇上图是我阅读文章的作者给出的架构层次。一共分为四层:1、界面层,负责数据显示,依赖于核心层和模型层。2、核心层,是业务逻辑处理与UI逻辑处理,依赖于接口层和模型层3、接口层原创 2015-11-19 14:55:39 · 730 阅读 · 0 评论 -
关于AnimationSet无法循环的小结
主要就是android:repeatCount,android:repeatMode无效。这个问题据说是Google的工程师刻意为之。替代方案是用属性动画,AnimatorSet的方式。The attributes that were ignored in XML now work, with the exception of repeatCount and fillEnabled whi转载 2015-11-09 00:53:31 · 5170 阅读 · 0 评论 -
intent-filter 之 data讲解
本文转载至:http://www.cnblogs.com/newcj/archive/2011/08/11/2135094.html一、定义scheme, host, port, path, pathPrefix, pathPattern 是用来匹配 Intent 中的 Data Uri 的。具体规则如下: scheme://host:port/path or p转载 2015-10-08 15:31:39 · 489 阅读 · 0 评论 -
【HTTP】连接的优化技术
参考:《HTTP权威指南》HTTP允许客户端和最终源端服务器之间存在一串HTTP中间实体(代理、高速缓存等)。可以从客户端开始,逐跳地将HTTP报文经过这些中间设备,转发到源端服务器上。(或者进行方向传输)在某些情况下,两个相邻的HTTP应用程序会为它们共享的连接应用一组选项,HTTP的Connection首部字段中有一个由逗号分隔的连接标签列表,这些标签为此连接指定了一些不会传播原创 2015-10-06 00:47:57 · 1157 阅读 · 0 评论 -
jarsigner对apk进行签名
一、今天遇到一个小问题,关于EvenBus回调方法的认识。EvenBus回调方法有四个:onEvent函数在Post所在线程一致。onEventMainThread在主线程里执行onEventBackground如果post在主线程,则该回调在新建的子线程中,如果post在一个子线程中,则该回调在该子线程中执行。onEvenAsync在新建的线程中,执行回调方法。在Frag原创 2015-09-07 23:52:47 · 758 阅读 · 0 评论 -
GsonFormat快速实现JavaBean
文章转载于 插件GsonFormat快速实现JavaBean最近看见一篇快速实现javaBean的屎丢丢插件,这是一个根据JSONObject格式的字符串,自动生成实体类参数。 如果想要使用这个插件,有两个方法可供选择。 安装方法 方法一:1.Android studio File->Settings..->Plugins–>Browse repositores..搜转载 2015-09-28 21:15:02 · 1620 阅读 · 0 评论 -
Activity运行状态以及完全退出程序
参考至: http://blog.youkuaiyun.com/tangcheng_ok/article/details/6755194保存Activity运行状态通过重写onSaveInstanceState()方法来实现Activity的运行状态,请注意以下几点:1)由于activity 对象被暂停或停止时,它仍然保留在内存里面,关于它的成员信息和当前状态都是活动的,所以此时可以保转载 2015-08-21 20:45:54 · 1025 阅读 · 0 评论 -
PullToRefreshListView的Position问题
今天做项目,遇到一个关于PullToRefreshListView的Position问题。 在OnItemClickListener方法参数position,从1开始,而不是像ListView那般从0开始。原因是因为PullToRefreshListView有Header,占用了一个item的位置,所以position的值便从1开始。所以我有理由推测,如果ListView添加了He原创 2015-09-09 00:40:53 · 1860 阅读 · 0 评论 -
PopupWindow的进入和退出的动画效果设置
要实现背景虚化的对话框,有三种方式:PopupWindow,DialogFragment 和 Activity。现在先说说PopuWindow的出现和消失的动画设置。PopupWindow的进入效果和退出效果,用到style样式。PopupWindow中没有setAnimation方法,只能通过popWindow.setAnimationStyle(R.style.showPopupAni转载 2015-08-27 01:22:39 · 7546 阅读 · 0 评论 -
从工厂模式到依赖注入的逻辑演变
在介绍工厂模式与控制反转(Inversionof Control)及依赖注入(DependencyInjection)之前,先介绍下类的调用方法。目前调用方法总共有3种:1.自己创建;2.工厂模式;3.外部注入,其中外部注入即为控制反转/依赖注入模式(IoC/DI)。我们可以用3个形象的东西来分别表示它们,就是new、get、set。顾名思义,new表示自己创建,get表示主动去取(即工厂),se转载 2015-08-13 01:01:13 · 1075 阅读 · 0 评论 -
mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi 对应的像素密度
原创 2015-07-30 20:04:01 · 10113 阅读 · 0 评论 -
对框架设计模式的认识小结
今天阅读了一些设计模式的文章,有一些收获和心得,作如下分享。参考文章: MVC、MVP以及Model2[上篇] MVC、MVP以及Model2[下篇]从三层架构到MVC,MVPAndroid App整体架构设计的思考(一)Android App整体架构设计的思考(二)android UI设计MVVM设计模式讨论?Android 开发有哪些原创 2015-07-29 15:29:11 · 1048 阅读 · 0 评论