- 博客(48)
- 资源 (3)
- 收藏
- 关注
原创 1 消息机制
1 消息机制Android 消息机制本质上是 Handler 运行机制和 MessageQueue 以及Looper 工作过程,这三者所组成的一个整体运行机制。Android 消息循环机制如下图所示:具体分为四大要素: Message(消息):需要被传递的消息,消息分为硬件产生的消息(如按钮、触摸)和软件生成的消息。 MessageQueue(消息队列):负责消息的存储与管理,负责管理由 Handler 发送过来的Message。读取会自动删除消息,单链表维护,插入和删.
2021-09-03 10:22:40 228
原创 有效的避免Handler的泄漏
查找和整理相关和记录相关知识点,复盘,方便一起巩固。在Android系统中,Handler是一个消息发送和处理机制的核心组件之一,与之配套的其他主要组件还有Looper和Message,MessageQueue。Message和Runnable类是消息的载体。MessageQueue是消息等待的队列。Looper则负责从队列中取消息。Handler有两个主要作用: 1.安排调度(s...
2019-06-20 14:53:51 287
原创 webview跨域,导致验证码验证不通过问题
记一次webview跨域问题。因为本身APP加载公司网页,需要跳转有和第三方合作关系的域名网页中,导致第三方网页存在页面如果有验证码的情况下,输入的验证码和下发的验证码一直的情况的时候,还是依然报验证码错误,大部分人可能会认为这是网页的问题,因为验证码错误看似和客户端无关,我们不过是用webview加载包了一层而已,但实际上其实是webview的一个跨域访问的问题了,因为跨域的cookies是不...
2019-06-13 14:58:54 1044 1
原创 Gradle plugin requires Studio 3.0 minimum
今天遇到了一个Error:This Gradle plugin requires Studio 3.0 minimum这样的问题,我觉得是我的studio的版本不够高,我的studio是2.3版本的,导入的项目的版本应该是3.0的。 将以下内容添加到gradle.properties中:android.injected.build.model.only.versioned = 3
2018-01-03 11:56:41 1164
原创 应用最广的模式-单例模式
应用最广的模式—–单例模式单例模式的介绍 单例模式是应用最广的模式之一,在应用这个模式的时候,单例对象的类必须保证只有一个实例存在,许多时候整个系统只需要拥有一个全局对象,这样有利于我们协调系统的整体行为。单例模式的定义 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 好了。说了这么多似懂非懂,贫道也腻歪,下面我们来说点实际的吧,单例模式一般会有哪些
2017-05-05 10:38:21 296
原创 计算字符串中的简单数学公式
今天公司产品提出需求。需要把计算公式放到服务器,然后服务器可动态化配置。所以找寻各种资料从而由此方法代码如下:public static double eval(final String str) {return new Object() {int pos = -1, ch;void nextChar() {ch = (++pos }boolean
2016-10-27 10:24:04 1402
原创 超好用的客户端缓存文件类
package com.shcc.microcredit.utils;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Pixe
2016-09-28 18:00:52 350
原创 app缓存策略
无论大型或小型应用,灵活的缓存可以说不仅大大减轻了服务器的压力,而且因为更快速的用户体验而方便了用户。Android的apk可以说是作为小型应用,其中99%的应用并不是需要实时更新的,而且诟病于蜗牛般的移动网速,与服务器的数据交互是能少则少,这样用户体验才更好,这也是我们有时舍弃webview而采用json传输数据的原因之一。 采用缓存,可以进一步大大缓解数据交互的压力,特此,我们简略列举
2016-09-20 17:40:55 430
原创 PopupWindow之了解
在分析PopupWindow之前,我们将首先说一下什么是PopupWindow?理解一个类最好的方式就是看一下这个类的定义,这里我们摘要了一下Android系统中PopupWindow的类的说明:A popup window that can be used to display an arbitrary view. The popup window is a floating con
2016-09-09 16:16:42 430
原创 关于Calling View methods on another thread than the UI thread的错误
唉,今天又碰到一坑,在原生的界面使用分享没一点问题,各项正常,然后加载webview的时候,在webview中去进行分享,QQ,微信等都没问题,但是微博分享却尼玛报错,心里一万只草泥马~~控制台抛出Calling View methods on another thread than the UI thread此异常,一看名字UI,thread,心里猜想这应该是UI线程问题,然后网上找找资料一看果
2016-07-20 20:05:24 3780
转载 Android WebView开发问题及优化汇总
我们在native与网页相结合开发的过程中,难免会遇到关于WebView一些共通的问题。就我目前开发过程中遇到的问题以及最后得到的优化方案都将在这里列举出来。有些是老生常谈,有些则是个人摸索得出解决方法。下面就是整理得到的些干货。1.加快HTML网页装载完成的速度默认情况html代码下载到WebView后,webkit开始解析网页各个节点,发现有外部样式文件或者外部脚本文件时,会异
2016-07-18 14:17:15 328
原创 Android Studio-Gradle项目中添加JNI生成文件(.so文件)
为了适应潮流使用Android Studio还是有半年多了!对于从Eclipse迁移项目到Android Studio中添加.jar文件和.so文件无疑是一件很重要也是很头疼的问题!在最新版本中,默认是自动打包libs下面的所有.jar文件的,所以jar不用多讲了。加入.SO(这个是要看你的项目Gradle版本)提示:都是设置build.gradle文件
2016-07-07 13:58:20 331
原创 Android加载pdf
唉,都是泪啊,服务器传下来一个pdf的文件格式 说要加载预览,我一想Android压根就不支持啊。心塞,然后网上各种找。终于找到一个插件,欣喜若狂啊。然后迫不及待的集成上去。集成地址https://github.com/barteksc/AndroidPdfViewer这个插件。然而让我悲剧的是。竟然没有加载网络的,只有加载本地的。欲哭无泪,但这难不倒小的我。我想既然只能加载本地的话,那没办法了咯
2016-07-06 11:41:14 3446 4
原创 关于android,so库那点事~~
Android 应用开发中不可避免的会引入第三方的代码。如果是开源项目风险相对可控,如果引入商用的 SDK 那就要谨慎了,难免会有这样或那样的问题。比如我们今天要说的这一个。对集成过第三方 SDK 的同学,上图中的目录结构应该不陌生。正常情况下我们只需要将不同版本的 so 文件分别放置。但如果我们要集成的这个第三方 SDK 偏偏没有 arm-v7a 的版本呢?是删除 armeabi-v7a 目
2016-07-04 11:45:21 4587 2
原创 Android通信加密
最近项目中需要和服务器端通信进行加密,无奈只好上咯。以下为本次加密所用到的一些类,和用法,1:RSA加密package com.shcc.microcredit.utils;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.InputStream;im
2016-06-22 13:51:42 2217
原创 在ScrollView中嵌套ListView的导致ListView只显示一两行
如题,在项目中嵌套使用导致ListView显示不全。这是由于这两个控件都是滑动组件,所以可能导致高度没办法绘制,所以解决办法为:直接自己定义一个ListView.public class MyListView extends ListView { public MyListView(Context context) { super(c
2016-06-14 15:36:55 445
原创 防止连续点击打开两个重复页面的小技巧
VIEW.setEnabled(false);VIEW.postDelayed(new Runnable() { @Override public void run() { VIEW.setEnabled(true); }}, 2000);
2016-06-12 21:24:23 714
原创 关于android获取相册有些机型路径为空的解决办法
添加一个从相册返回的路径private String getUrl(Uri uri){ String url = ""; if (!TextUtils.isEmpty(uri.getAuthority())) { try { cursor = getContentResolver().query(uri,
2016-06-06 17:14:03 1156
原创 自定义TextView超过一行换行居中
package com.shcc.microcredit.views;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.text.Layout;import android.text.StaticLayout;import
2016-06-03 16:33:10 3036
原创 Android-shape
shape,最基础的形状定义工具。一般用shape定义的xml文件存放在drawable目录下,若项目没有该目录则新建一个,而不要将它放到drawable-hdpi等目录中。使用shape可以自定义形状,可以定义下面四种类型的形状,通过android:shape属性指定:rectangle: 矩形,默认的形状,可以画出直角矩形、圆角矩形、弧形等oval: 椭圆形,用得比较多
2016-05-30 14:08:32 262
转载 两步搞定Fragment的返回键
Fragment可以说是在Android开发必需要使用到技术,项目中的界面基本上都是使用Fragment来实现,而Activity只是作为Fragment的载体,但有些特殊情况下Fragment也不得不处理Back键,如果是Activity的话还好说,直接覆盖 Activity的onBackPressed即可,但Fragment可就没有这么幸运了,你可能和我一样,最开始有这样的需求的时候都会想去覆
2016-04-11 14:40:55 7168 2
原创 高效加载图片
如何高效加载Bitmap呢,其实核心思想很简单,就是采用BitmapFactory.Options来加载所需尺寸的图片,假设通过imageview来显示图片,很多时候控件的尺寸并没有图片的原始尺寸那么大,这时候如果加载整个图片是没必要的,所以我们可以通过按一定的采样率来加载缩小后的图片。采样率 inSampleSize,当这个值为1时 采样后图片为图片的原始大小,如果为2 那么久为原图的2/1.像
2016-04-07 17:37:53 383
原创 36个常用的代码片段
拨打电话123publicstatic void call(Context context, String phoneNumber) { context.startActivity(newIntent(Intent.ACTION_CALL, Uri.parse("tel:"+
2016-03-29 13:59:25 526 1
转载 Java 单例真的写对了么?
单例模式是最简单的设计模式,实现也非常“简单”。一直以为我写没有问题,直到被 Coverity 打脸。1. 暴露问题前段时间,有段代码被 Coverity 警告了,简化一下代码如下,为了方便后面分析,我在这里标上了一些序号:private static SettingsDbHelper sInst = null; public static SettingsDbHelper g
2016-03-29 10:10:24 271
原创 一些常用网址
整理一些安卓的常用url1、http://www.oschina.net/2、http://jcodecraeer.com/3、http://www.eoeandroid.com/forum.php4、http://blog.csdn.net/lmj623565791?viewmode=contents5、http://blog.csdn.net/guolin_blog6、...
2016-03-24 20:51:28 582
原创 RecyclerView单选
记录下今天RecyclerView单选实现class HomeAdapter extends RecyclerView.Adapter implements View.OnClickListener { @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
2016-03-24 19:53:59 6244 4
原创 banner广告页
Android-ConvenientBanner是通用的广告栏控件,让你轻松实现广告头效果。支持无限循环,可以设置自动翻页和时间(而且非常智能,手指触碰则暂停翻页,离开自动开始翻页。你也可以设置在界面onPause的时候不进行自动翻页,onResume之后继续自动翻页),并且提供多种翻页特效。比其他广告栏控件,大多都需要对源码进行改动才能加载网络图片,或者帮你集成不是你所需要的图片缓存库。而这
2016-03-22 17:27:04 290
转载 Android中Java和JavaScript交互
Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本。本文将介绍如何实现Java代码和Javascript代码的相互调用。如何实现实现Java和js交互十分便捷。通常只需要以下几步。WebView开启JavaScript脚本执行WebView设置供JavaScript调用的交互接口。客户端
2016-03-14 19:24:05 333
原创 Android 优化Bitmap避免OOM
使用android提供的BitmapFactory解码图片时,往往会因为图片过大而遇到OutOfMemoryError的异常。要想正常使用,一种简便的方式是分配更少的内存空间来存储,即在载入图片的时候以牺牲图片质量为代价,将图片进行放缩,这是一种避免OOM所采用的解决方法。但是,这种方法是得不偿失的,牺牲了图片质量。在BitmapFactory中有一个内部类BitmapFactory.Op
2016-03-14 19:14:21 627
原创 一个自定义的圆形进度条
最近在项目总会用到一些圆形进度条,所以就记录下来 供以后可用首先新建一个CircleProgressBar 继承Viewpackage com.example.liwenjie.firstapp.viewbase;import android.content.Context;import android.graphics.Canvas;import android.graphi
2016-03-11 14:05:19 293
转载 一篇文章读懂开源web引擎Crosswalk
Web技术的优势早已被广大应用开发者熟知,比如可与云服务轻松集成,基于响应式UI设计的精美布局,高度的开放性,跨平台能力, 高效的分发与部署等等。伴随着移动互联网的快速发展与HTML5技术的逐步成熟,Web应用已经成为移动端跨平台应用开发的热门解决方案。然而要在移动端充分利用Web技术的优势,仍然有许多障碍。Crosswalk作为一款开源的web引擎,正是为了跨越这些障碍而
2016-03-09 10:15:00 329
转载 Android Studio一步步教你集成发布适配
开始我们的配置1.首先是友盟渠道,相信很多公司产品都融入了这个把[UMENG_CHANNEL]()下面的值改为 [${UMENG_CHANNEL_VALUE}]()123 android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_V
2016-02-25 15:47:30 458
原创 Textview关键字高亮
public class TextStringUtil { /** * 关键字高亮变色 * * @param color * 变化的色值 * @param text * 文字 * @param keyword
2016-02-24 16:00:37 652
原创 Android原生定位
虽然说现在有很多定位的lib,但有些不想用第三方的我就写了一个原生定位~用什么保证一直定位呢,我采用的是Service + BroadcastReceiver首先新建一个Service ,代码贴出如下package com.mobp2p.mobp2psdk.utils;import com.mobp2p.mobp2psdk.javabean.Common;i
2016-02-19 18:12:37 1474
转载 常用正则表达式
一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9]*)$6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7 带1-2位小数的正数或负数:^(\-
2016-01-12 15:44:49 197
原创 Android studio快捷键
操作 Windows系统注释代码(//) Ctrl + /注释代码(/**/) Ctrl + Alt + /格式化代码 Ctrl + Alt + L清除无效包引用 Alt + Ctrl + O查找 Ctrl + F
2016-01-12 14:35:39 269
转载 webview,html5缓存浅谈
(转)腾讯Bugly特约作者:贺辉超1 H5 缓存机制介绍H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性。离线存储(也可称为缓存机制)是其中一个非常重要的特性。H5 引入的离线存储,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。H5 应用程序缓存为应用带来三个优势:离线浏览 用户可在应用离线时使用它们速度 已缓存资源加载得更快
2016-01-12 14:04:10 1695
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人