- 博客(29)
- 收藏
- 关注
原创 安卓中webp格式图片转换格式上传服务器(包含.jar和.so文件)
/** * Created by pc on 2017/8/24. * 转换图片格式为webp的图片、这种格式要么服务器处理、要么客户端本地处理、否则上传不支持 */public class WebpImageToPngImageUtils { static { System.loadLibrary("webp"); } public stati
2017-08-25 14:11:03
892
原创 安卓自定义圆环进度
/** * 一个圆形百分比进度的自定义View */public class CustomCirclePercentView extends View { /** 圆的半径*/ private float mRadius; /** 色带的宽度*/ private float mStripeWidth; /** 总体宽高大小*/ private
2017-07-05 13:55:13
667
原创 浅谈Android 6.0运行时权限理解
前言 谷歌在2015年8月份时候,发布了Android 6.0版本,代号叫做“棉花糖”(Marshmallow ),其中的很大的一部分变化,是在用户权限授权上,或许是感觉之前默认授权的不合理,现在6.0出来,使得用户权限授权变得合理。这可能也是参考IOS系统的,只有在用户需要使用权限的时候,才去授权请求,这样做的目的是提高用户体验,当然,用户感觉好了,受苦的是我们开发人员,原来的规则不适用
2017-04-24 17:01:12
485
原创 Android通过栈对Activity进行管理避免内存溢出
刚才看了一个很好的项目里面条理框框非常的清晰,感觉写的baseActivity和baseApplication很棒,先介绍一下他里面的application存放的都是什么?程序员第一笔的时候应该怎么来定义里面的东西。 首先定义一个对外提供整个应用生命周期的Context,这个不用多说了。还有寄存整个应用Activity的栈,当前Activity的弱引用,防止内存泄露,还有一个好
2017-04-13 15:20:43
1025
原创 HandlerThread 的使用及其源码完全解析
本篇我们将来给大家介绍HandlerThread这个类,以前我们在使用线程执行一个耗时任务时总会new一个Thread的线程去跑,当任务执行完后,线程就会自动被销毁掉,如果又由新的任务,我们又得新建线程.....我们假设这样的一个情景,我们通过listview去加载图文列表,当我们往下滑动时,这时需要不断去请求网络资源,也就是需要不断开线程去加载网络资源,如果每次都new一个Thread,这显然是
2017-04-12 13:38:53
1441
原创 安卓中运用 JAVA并行异步编程,线程池+FutureTask+callable+ExecutorService
Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待(这种项目中常用)。newScheduledThreadPool 创建一个定长线程池,支持定时及周
2017-03-30 14:05:05
946
原创 安卓ShareSDK分享总结
一、前言几乎所有的Android应用都离不开分享这一个大功能,把自己的应用或者某条内容分享到各个社交平台对于宣传应用是非常必要的,市场上大部分的分享都是通过集成ShareSdk来实现的,这里就给大家总结下AndroidStudio集成ShareSdk的步骤,简单快捷,更加明了清晰。二、集成步骤1、添加ShareSdk依赖:将 compile 'com
2017-03-21 20:23:53
881
原创 安卓Jpush推送简单集成
一、前言 这篇文章主要来讲解推送的使用,例如我们一打开手机或者一联网经常看到微博客户端或者新闻客户端推送一条信息,我们可以点开通知栏上通知的信息,跳到相应的新闻页面,这些功能的实现看似都是通过服务端发消息给客户端来实现的,实则不然。 推送的原理大都相似,都是通过一个中转服务器,初始化的时候客户端和服务端都在服务器上注册好自己的设备信息,一旦服务端需要发推送消息时,就会给
2017-03-21 20:19:24
1995
原创 安卓获取MD5加密串
/** * 获得MD5加密字符串 * * @param str * 字符串 * @return */public static String getMD5Str(String str) { MessageDigest messageDigest = null; try { messageDigest = MessageDigest.ge
2017-02-21 09:21:00
466
原创 安卓根据签名文件获取MD5、SHA1、SHA256值的步骤
这些值可能会用于第三方集成,如百度地图等三方。1、cmd进入dos命令行2、指定到你的appkey文件的根目录3、然后输入keytool -v -list -keystore “你的appkey名称” 回车4、输入之前设定好的appkey文件的密码 回车5、这样所有的appkey文件的各种信息都能看到了
2017-02-08 10:13:40
2862
原创 安卓浅谈和使用观察者设计模式
观察者模式(Observer Pattern)定义对象间的一种一个(Observable)对多(Observer)的依赖关系,当一个对象的状态发送改变时,所以依赖于它的对象都得到通知并被自动更新。当然,MVC只是Observer模式的一个实例。Observer模式要解决的问题为:建立一个一(Observable)对多(Observer)的依赖关系,并且做到当“一”变化的
2017-01-20 17:32:25
341
原创 工作中关于webview同步cookie遇到的坑
/** * 同步一下cookie */private void synCookies(String url) { CookieSyncManager.createInstance(LiCaiActivity.this); CookieManager cookieMgr = CookieManager.getInstance(); cookieMgr.setAcceptCoo
2016-12-22 13:16:38
896
原创 安卓加载大背景图片或者加载大量本地资源图片时经常导致内存溢出(Out of Memory Error)推荐几种解决方案
Android在加载大背景图或者大量图片时,经常导致内存溢出(Out of Memory Error),本文根据我处理这些问题的经历及其它开发者的经验,整理解决方案如下(部分代码及文字出处无法考证): 方案一、读取图片时注意方法的调用,适当压缩 尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图
2016-12-22 08:50:41
4628
1
原创 安卓开发关于百度地图定位返回经纬度4.9E324科学计数法的解决方案
百度地图提供的sdk开发包也是个坑!!!Android机型适配不够好,部分手机能够定位有些手机不能定位!!!!!用百度定位的时候一直定位不到,拿到的经纬度都是4.9E-324,Google了一下,发现不少人出现这个问题,经过一番研究,最终解决了这个问题。目前看来,出现这个问题说明定位失败了,定位失败返回的就是这个值,定位失败的原因就是库加载失败。也就是百度地图最开始
2016-12-21 10:40:43
4939
1
原创 安卓中数据库存本地储路径和Shareprefence本地存储路径以及将文件转换成String字符串的工具类
数据库本地路径:"/data/data/cn.com.example.fang_com/databases/你的数据库名.db";Shareprefence本地存储路径:"/data/data/cn.com.example.fang_com/shared_prefs/你的Shareprefence名.xml"//以下为将本地文件转换成String字符串的工具类:private String r
2016-12-20 10:53:51
2214
原创 安卓关于ANR的可能情况
ANR 是什么?怎样避免和解决 ANR(重要)ANR->Application Not Responding也就是在规定的时间内,没有响应。三种类型:1). KeyDispatchTimeout(5 seconds) –主要类型按键或触摸事件在特定时间内无响应2). BroadcastTimeout(10 seconds) –BroadcastReceive
2016-12-19 15:30:02
619
原创 安卓中捕获未捕获的异常信息CrashHandler
在Android开发中在所难免的会出现程序crash,俗称崩溃。用户的随意性访问出现测试时未知的Bug导致我们的程序crash,此时我们是无法直接获取的错误log的,也就无法修复Bug。这就会极大的影响用户体验,此时我们需要注册一个功能来捕获全局的异常信息,当程序出现crash信息,我们把错误log记录下来,上传到服务器,以便于我们能及时修复bug。实现这个功能我们需要依赖于UncaughtExc
2016-12-19 15:07:45
695
原创 安卓类似华为手机适配底部虚拟按键的解决方案
场景1:华为手机遮挡了屏幕底部。场景2:进入应用时,虚拟键自动缩回,留下空白区域。需求:需要安卓能自适应底部虚拟按键,用户隐藏虚拟按键时应用要占满整个屏幕,当用户启用虚拟键时,应用能往上收缩,等于是被底部虚拟按键顶上来。需求很简单,实现起来却困难重重,公司抠门,连个带虚拟键的手机也不配一部~~。完美解决方案:解释一下下面的代码,就是监听某个视
2016-12-16 10:11:51
19260
6
原创 关于AsyncTask的缺陷问题
AsyncTask缺陷 1.生命周期关于AsyncTask存在一个这样广泛的误解,很多人认为一个在Activity中的AsyncTask会随着Activity的销毁而销毁。然后事实并非如此。AsyncTask会一直执行doInBackground()方法直到方法执行结束。一旦上述方法结束,会依据情况进行不同的操作。 •如果cancel(boolean)调用了,则执行onCanc
2016-12-14 14:14:11
874
原创 对称加密与非对称加密相关
对称加密采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。优点:对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。缺点:在数据传送前,发送方和接收方必须商定好秘钥,双方必须保存好秘钥。常用算法:DESAES非对称加密 RSA非
2016-12-13 16:01:27
441
原创 AndroidStudio中.9图的制作
1,用一张干净的png图片放在mipmap里面。2,点击图片右键最后一项,create 9-patch file保存在drawable目录3,对drawable里面生成的.9图进行划线,(注意:左和上划就可以,右边和下边不要划),直接鼠标左键划黑线,不要摁着ctrl划红线(因为这个错误耽搁好久)。 (左上分别代表图片纵向拉伸只拉伸该部分和图片横向拉伸只拉伸该部分)4,保存并
2016-12-13 13:35:29
6626
转载 安卓采用AutoLayout开源框架屏幕适配方案
一、概述相信Android的开发者对于设配问题都比较苦恼,Google官方虽然给出了一系列的建议,但是想要单纯使用这些建议将设备很轻松的做好,还是相当困难的。个人也比较关注适配的问题,之前也发了几篇关于适配的文章,大致有:Android 屏幕适配方案Android 百分比布局库(percent-support-lib) 解析与扩展Android 增强版百分比布局库 为了适配而扩展
2016-12-13 13:12:37
2170
原创 安卓广播使用时的ANR问题,onReceive的生命周期为10秒
在 Android中,程序的响应(Responsive)被活动管理器(Activity Manager)和窗口管理器(Window Manager)这两个系统服务所监视,当BroadcastReceiver在10秒内没有执行完毕,Android会认为该程序无响应,所以在 BroadcastReceiver里不能做一些比较耗时的操作,否则会弹出ANR(Application No Respons
2016-12-12 14:06:23
5687
转载 解决Android Studio报错:DefaultAndroidProject : Unsupported major.minor version 52.0
我的Android进阶之旅------>解决Android Studio报错:DefaultAndroidProject : Unsupported major.minor version 52.02016-07-01 10:04 10664人阅读 评论(4) 收藏 举报 分类:Android应用开发(274) 版权声明:本文为【欧阳鹏】原创文章
2016-12-12 10:17:57
1793
转载 正确地设置安卓通知栏图标尺寸
一个APP,需要用到通知的功能,但是通知栏上的icon在显示的时候会出现问题。具体的问题就是图标太大,只能显示其中的一部分:这是程序的icon,ic_launcher.png:我们想让他正确的显示为这样:但是如果图片的尺寸没有调整好,就会显示成这样:滑动出的内容为:很不好看,对吧。可以看到,通知只显示出来了中间的一
2016-11-08 09:56:58
1869
原创 AndroidStudio快捷键大全
Ctrl快捷键介绍Ctrl + F在当前文件进行文本查找 (必备)Ctrl + R在当前文件进行文本替换 (必备)Ctrl + Z撤销 (必备)Ctrl + Y删除光标所在行 或 删除选中的行 (必备)Ctrl + X剪切光标所在行 或 剪切选择内容Ctrl + C复制光标所
2016-11-04 17:24:56
11049
2
转载 Android APK的数字签名的作用和意义
1. 什么是数字签名?数字签名就是为你的程序打上一种标记,来作为你自己的标识,当别人看到签名的时候会知道它是与你相关的 2. 为什么要数字签名?最简单直接的回答: 系统要求的。 Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!And
2016-11-04 16:01:39
1839
原创 安卓关于listview更新数据时遇到的异常信息
异常日志:java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thre
2016-11-04 14:17:35
429
原创 Map集合遍历的四种方式
public static void main(String[] args) { Map map = new HashMap(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3"); //第一种:普遍使用,二次取值 System.out.println("通过
2016-11-03 13:57:35
407
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人