自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sunny_Harper的博客

业精于勤 荒于嬉

  • 博客(53)
  • 收藏
  • 关注

转载 Gson格式转换Integer变为Double类型问题解决

转自:https://my.oschina.net/MIKEWOO/blog/2994643场景:转实体对象自定义日期格式:Gson gson = new Gson();或Gson gson = new GsonBuilder().setDateFormat(“yyyy-MM-dd HH:mm:ss”).create();第一步:通过gson.toJson()方法先转为json串; (这步...

2019-02-01 15:26:08 5301

原创 理解KMP算法

KMP算法有一个文本串S,和一个模式串P,现在要查找P在S中的位置几个概念:字符串前缀、字符串后缀、字符串前缀后缀最大公共元素长度字符串子串的最长公共元素长度例:ABCDABD : 2Next 数组:当前字符前面字符串子串的最长公共元素长度步骤:假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置• 如果j = -1,或者当前字符匹配成功(即S[i]...

2018-11-23 00:31:58 311 1

原创 Android OkHttp文件上传与下载的进度监听扩展(解决WriteTo调用两次的问题)

相信大家对OkHttp也是相当的熟悉了,毕竟是Square的东西,对于其种种优点,这里也不再叙说。优秀是优秀,但是毕竟优秀的东西给我们封装了太多,那么问题来了,我们使用OkHttp作为我们的网络层,简单地进行GET/POST请求是毫无问题。近日看了产品的设计稿,毛估估会有文件的上传与下载的需求,如果使用OkHttp作为网络层进行封装,你会惊讶的发现,简直封装的太“完美”了。如果现在有这么一个需求,...

2018-06-11 18:20:40 2337

原创 Android 8 特性整理

Android 8.1功能和API 没有影响: 1.神经网络API 2.自动填充框架更新 3.程序化安全浏览操作 在Android 8.1中,您可以通过编程来定义您的应用程序如何响应已知的威胁: 您可以控制您的应用是否将已知威胁报告给安全浏览。 您可以让自己的应用程序自动执行特定操作(例如回到安全状态),

2017-12-21 17:17:50 2136

原创 Android N之后 Webview导致多语言切换失效的问题

这两天做了多国家多语言切换的需求,遇到了一个问题。android N版本之后在进入包含webview 页面之后,再次切换语言失效的问题,记录一下。原因是:webview 在Android N之后,webview的相关类以及相关jar的修改Android N 之前: Android的WebView是使用webkit构建的。虽然它最初是AOSP的一部分,但是从KitKat开始,决定分离出We

2017-11-25 15:35:43 5805

原创 windows环境下 android 源码阅读

方法一: 线上阅读方法二:本地阅读一.获取源码 通过Git去官网下载Android源码。步骤1:git clone http://android.googlesource.com/platform/frameworks/base.git步骤2:git basels -l步骤3:git tag //查看发行版本http://img.blog.csdn.net/2013122419400

2017-11-17 15:40:31 5013 1

原创 Could not read input channel file descriptors from parcel

困扰了三天的bug,由于堆栈信息不完整没有业务层的信息,搜网上也只是大致的原因,没有具体的解救方法,而且在我们这边一直没有复现,找不到出现问题的位置,就很痛苦。看堆栈信息只能找到是跳转目标Activity的位置crash了,堆栈信息:java.lang.RuntimeException: Could not read input channel file descriptors from parce

2017-11-08 23:27:10 8927 1

原创 Android多语言支持以及各国语言Values文件夹命名规则

创建好的项目工程由于需求 需要做多国语言的支持 下面介绍怎么快捷的创建文件夹建好一个android 的项目后,默认的res下面 有layout、values、drawable等目录这些都是程序默认的资源文件目录,如果要实现多语言版本的话,我们就要添加要实现语言的对应的资源文件。首先我们点击添加Android Xml File按钮,在Resource Type中选择Values 在File中输入st

2017-09-28 10:39:35 3323

转载 git从已有分支拉新分支开发

原文地址:http://www.cnblogs.com/lingear/p/6062093.html开发过程中经常用到从master分支copy一个开发分支,下面我们就用命令行完成这个操作:切换到被copy的分支(master),并且从远端拉取最新版本$git checkout master$git pull从当前分支拉copy开发分支$git checkout -b devSwitched

2017-09-27 14:06:05 1058

转载 关于Android的.so文件你所需要知道的

转载:http://www.jianshu.com/p/cb05698a1968 早期的Android系统几乎只支持ARMv5的CPU架构,你知道现在它支持多少种吗?7种!Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一

2017-09-22 10:00:44 331

转载 AndroidStudio运行项目出现DELETE_FAILED_INTERNAL_ERROR和INSTALL_CANCELED_BY_USER

转:http://blog.csdn.net/hexingen/article/details/55045989?locationNum=5&fps=1问题描述: Application will not run on device: INSTALL_CANCELED_BY_USER , DELETE_FAILED_INTERNAL_ERROR ?这里写图片描述点击确认后,运行没有成功,却在Run窗

2017-09-21 10:10:10 807

原创 H5调用本地app

首先既然H5和本地app达到交互,所以得有个标识,通过这个标识来开启app ,这时候就需要我们app端在manifest中的入口activity中添加scheme,也就是类似标识是的,这时候网页端可以通过这个scheme来开启我们的app,但是如果想要给我们app传递参数的话,那么就不好使了,所以这时候还需要 添加host,就可以了,代码如下 <intent-filter>

2017-07-01 18:55:15 2816

转载 关于android中矢量图如何用,有坑,爬坑,如何替代的另一些看法

转自:http://www.jianshu.com/p/313912ff2f37在安卓的发展历程中,由于设备碎片化的原故,谷歌在app中图标的适配上做出一步又一步的改进,大体有这么几个阶段:首先有了drawable-(m|h|xh|xxh|xxxh)dpi 自android studio后,又有了mipmap-(m|h|xh|xxh|xxxh)dpi 随着android L的发布,带来了Vect

2017-06-28 16:54:52 2180

转载 Android Studio2.0的逆天功能Instant Run

转自:https://segmentfault.com/a/1190000004039742作为一个Android开发者,很多的时候我们需要花大量的时间在bulid,运行到真机(虚拟机)上,对于ios上的Playground羡慕不已,这种情况将在Android Studio 2.0有了很大改善,使用instant run,在第一次运行之后,就可以快速的在真机中看见修改后的结果,不仅仅是UI可以直接显

2017-06-17 12:19:39 412

转载 Android Vector曲折的兼容之路

转自: http://www.open-open.com/lib/view/open1467861100069.html官方文档:https://developer.android.com/studio/write/vector-asset-studio.html#about两年前写书的时候,就在研究Android L提出的Vector,可研究下来发现,完全不具备兼容性,相信这也是它没有被广泛使用的

2017-06-17 12:14:23 398

原创 SSLException:Ssl handShakeaborted 解决方法

最近一个需求上传图片的接口在android 4.4机子上报出了这个问题: SslHandshake aborted:ssl=0x7b8b5260:I/O error during system call,Read-only file system… 网上查了下原因: 1.服务或者客户端ssl 证书过期或port重置 2.服务端不支持Tsl 1.0 3.update IIS8时 “Requ

2017-06-13 00:44:20 17496 1

转载 保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护

本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一、Service简介:Java.lang.Object ↳Android.content.Context ↳android.content.ContextWrapper ↳android.app.ServiceService是应用程序Application的一个组件(comp

2017-05-31 16:48:50 886

转载 守护进程和守护线程

经常把守护进行和守护线程搞混,现在把这两个概念总结一下:对于Java而言,一般一个应用程序只有一个进程——JVM。除非在代码里面另外派生或者开启了新进程。而线程,当然是由进程开启的。当开启该线程的进程离开时,线程也就不复存在了。所以,对于JAVA而言,线程是完全可以由自己的API自由产生。例如new Thread().但是进程就不同,必须通过调用OS的API,如Runtime.getRuntime.

2017-05-31 16:27:00 1527

原创 Android 进程间、线程间通讯方式总结

进程间通讯:1.Bundle/Intent传递数据:可传递基本类型,String,实现了Serializable或Parcellable接口的数据结构。Serializable是Java的序列化方法,Parcellable是Android的序列化方法,前者代码量少(仅一句),但I/O开销较大,一般用于输出到磁盘或网卡;后者实现代码多,效率高,一般用户内存间序列化和反序列化传输。2.文件共享:对同一个

2017-05-31 15:58:32 3286

转载 深入理解java异常处理机制

转自: http://blog.csdn.net/hguisu/article/details/6155636/引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代

2017-05-23 17:57:34 280

转载 CountdownTimer倒计时

转自:http://www.cnblogs.com/over140/archive/2011/12/20/2294220.html结构继承关系public abstract class CountDownTimer extends ObjectJava.lang.ObjectAndroid.os.CountDownTimer类概述定时执行在一段时候后停止的倒计时,在倒计时执行过程中会在固定间隔时间得

2017-05-23 17:46:22 277

转载 ContentProvider和Cursor以及CursorAdapter三者之间内部链接实现原理 解析

最近 在学习Android3.0中推出的 Loader 机制,其中CursorLoader 这个加载器说是可以实时监测数据和更新数据,为了一探究竟,就连带的将 ContentProvider和Cursor以及CursorAdapter三者间的内部交互分析了下,然而本章内容主要就是将这一块,至于Loader机制准备,下一篇来具体分析。对于这三个类我们知道,Contentprovider就是一个Andr

2017-04-22 18:48:46 330

转载 Android 开发 之 Enum (枚举) —— @IntDef的使用

官方文档说明,安卓开发应避免使用Enum(枚举类),因为相比于静态常量Enum会花费两倍以上的内存。参 http://developer.android.com/training/articles/memory.html#Overhead那么如果需要使用Enum应该怎么做呢?https://noobcoderblog.wordpress.com/2015/04/12/java-enum-and-an

2017-04-22 18:39:45 107

原创 html.toHtml fromHtml遇到嵌套标签的转换问题

遇到的问题是<a><img></a> 在html.fromHtml.html.toHtml后 发现<img><a></a> 错位。原因是toHtml中的问题,会把子标签放到父标签的外面。解决:手动转换 遇到<a><img></a>这种情况,转换后<img><a></a>手动替换回<a><img></a> //利用反射修改mSpans里面的imagespan和urlspan的顺序

2017-03-28 17:23:00 1130

原创 WebView 图片大小自适应问题

三星android 4.4 以下版本遇到 图片过大展示超过手机屏幕的问题: 问题出在img标签中有固定的width大小,导致展示过大。 解决方法: private String exchangeStyleValue(String htmlString) { Document doc = Jsoup.parse(htmlString); El

2017-03-13 14:48:58 332

原创 RecycleView 最后一条Item 宽度的问题

问题:没有填充整个宽度。 原因:inflate的参数问题,没有传入parent 解决://View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_home,null);View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layo

2017-02-20 15:07:41 491

转载 Android,定时任务AlarmManager

AlarmManager 按字面看是闹钟管理器。通过对它的使用,可以实现:(1)在指定时长后执行某项操作(2)周期性的执行某项操作AlarmManager对象需要配合Intent使用,可以定时的开启一个Activity,发送一个BroadCast,或者开启一个Service.AlarmManager常用的方法有以下几个:// 取消已经注册的与参数匹配的定时器 void cancel(Pendi

2017-02-15 14:37:12 273

转载 AlarmManager.setRepeating的参数问题

我在设置时钟的时候遇到一点问题 我开始的代码是这样写的alarmManager.set(AlarmManager.RTC_WAKEUP, (5*1000), sender); 我的本意是设定五秒后启动闹钟 但是每次都是我设置完闹钟之后立马就启动了。 后来我发现问题出在第二个参数上 我对他的理解是错误的 type One of ELAPSED_REALTIME, ELAPSED_REALTI

2017-02-15 14:29:01 7924

转载 Android 4.0新的广播机制FLAG_EXCLUDE_STOPPED_PACKAGES

问题: 第三方app调起失败,当然,这个是只发现是在4.x的android系统下发生,在2.x版本下,一切正常,(其实是3.1及以上的版本都有问题)具体场景为: 1、第三方App安装成功但未启动,试图从App通过sendBroadcast方式调起:失败 2、第三方App的进程被用户强制杀掉,试图从App通过sendBroadcast方式调起:失败 3、第三方App处于启动状态,试图从App通

2017-02-15 14:15:37 1216 1

转载 Glide 不能说的秘密

Glide简介An image loading and caching library for Android focused on smooth scrolling 一个专注于流畅滑动的图片加载和缓存库优势其实现在,图片加载和缓存的库已经超级多了,Glide是目前谷歌官方推荐的加载库,它有一个比较牛的特点就是支持GIF格式的图片播放,目前的人气也超级高!!另外还可以设置渐变的加载效果,控制相关

2017-02-08 12:11:53 296

转载 volatile与synchronized的区别

1、锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。  互斥即一次只允许一个线程持有某个特定的锁,因此可使用该特性实现对共享数据的协调访问协议,这样,一次就只有一个线程能够使用该共享数据。  可见性要更加复杂一些,它必须确保释放锁之前对共享数据做出的更改对于随后获得该锁的另一个线程是可见的 —— 如果没有同步机制提供的这种可见性保证,线程看到的共享

2017-02-07 21:29:23 231

原创 android Html img 标签解析

Html.fromHtml(url,imageGetter,TagHandler)重写ImageGetter 异步加载图片,加载图片之后重置TextView(EditView)的内容。 参数说明:source=需要展示的html文本内容,imageGetter=需要继承Html.ImageGetter接口实现逻辑,tagHandler=这个参数表示,当textView解析遇到无法识别的htm

2017-01-20 11:58:11 2110

原创 ViewPager滑动至最后页跳转

标志位添加:mMemberNewleadVp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { boolean hasGotoListPage; boolean wantToGoListPage; boolean isLast;

2016-11-15 17:43:35 327

转载 SQLiteDatabaseLockedException

错误日志:android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_modeat android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpe

2016-10-19 14:21:56 887

原创 RecycleView 删除Item 遇到的问题

int layoutPosition = viewHolder.getLayoutPosition(); //getLayoutPositon(数值包括 getHeadCount()) 且从1开始计数 对应mCommunicationList-1 //getHeadCount() = 2 refres

2016-09-23 16:28:45 649

原创 webview 内容改变时 高度不resize的解决方法

情景:邮件详情页上下翻页,共用的一个webview,当内容改变时,webview高度没有重绘,下方有大量留白。解决方法:重写webViewClient()的onPageStarted()方法,重新测量webview的宽高。触发重绘方法。代码:webView.setWebViewClient(new WebViewClient() { @Override

2016-09-13 23:22:16 4054

转载 (转)android中src和background区别

ImageView中XML属性src和background的区别:background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),bg是背景,可以同时使用。此外:scaleType只对src起作用;bg可设置透明度,比如在ImageButton中就可以用android:scaleType控制图片的缩放方式,示例代码如下:

2016-09-10 15:31:46 236

原创 setImageResource和setImageDrawable和setImageBitMap区别

(1)setImageResource的参数是resId,必须是drawable目录下的资源.另外,在setImageResource方法中有写明了注释* <pclass="note">This does Bitmap reading and decoding on the UI* thread, which can cause a latency hiccup.If that's a concer

2016-09-10 15:25:20 1113

原创 剑指Offer_11 数值的整数次方

实现函数double Power(double base,int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 思路:1.指数为负数,底数为0,底数为0且指数同时为0的情况。2.如果输入的指数exponent为32,我们在函数powerWithExponent的循环中需要做31次乘方。但我们可以换一种思路考虑:我们的目标是求出一个数字的32次

2016-09-01 21:07:15 183

原创 剑指offer_10 二进制中1的个数

请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1,因此如果输入9,该函数输出2. 思路:1:针对正数,把n左移:把整数和1做位与运算看结果是不是0就知道了。1除了最右边的一位之外所有的位都是0(除法的效率比移位运算要低很多,在实际编程中应尽可能地用移位运算代替乘除法。)。如果是负数,比如0x80000000,运行的时候会发生什么情况呢?把

2016-08-30 20:54:48 179

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除