
Android
文章平均质量分 71
lintax
孜孜不倦会为你赢得胜利,
临阵逃脱不是好汉。
鼓起勇气,
放弃毕竟是太容易,
抬头前进才是难题。
为你受打击而哭泣,
撤退也容易;
但是在不见希望时却要战斗再战斗,
这才是人生的最好之戏。
展开
-
Android解决数据库注入漏洞风险
在app功能开发完成,提交应用市场时,竟然报高风险,有数据库注入漏洞!什么是数据库注入漏洞,又是怎么检测出来的,要怎样防止呢?SQL注入漏洞检测方式说明:主要就是检测,是否在query()中使用拼接字符串组成SQL语句的形式去查询数据库,此时容易发生SQL注入攻击。举一个例子:有一个输入用户名的EditText,我们在查询数据库的时候使用到了它,是这么使用的:String sql = "SELEC...原创 2018-04-06 10:35:57 · 8204 阅读 · 0 评论 -
Android自定义键盘之汉字键盘
本文描述了自定义键盘的实现方法,并实现了中文键盘。 实现软键盘主要用到了系统的两个类:Keyboard和KeyboardView。 Keyboard用于监听虚拟键盘,KeyboardView处理绘制键盘和检测按键和触摸动作。原创 2016-07-16 22:19:46 · 7764 阅读 · 0 评论 -
浅谈HTTP中Get与Post的区别
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 1转载 2017-03-04 16:44:40 · 444 阅读 · 0 评论 -
360助手上app下载地址
我们从360助手上下载app时,是搜索到app后,点击下载的。如果我需要从程序代码中直接下载app,此时,不能再有点击操作了,所以我们需要的是一个直接下载app的网址。怎么获取这个url呢?下面分两种情况介绍:1,这个app是我们自己提交上去的;2,不是我们自己提交的app;原创 2017-01-30 13:51:57 · 4621 阅读 · 0 评论 -
Eclipse转Android Studio-NDK开发
将一个jni的工程转到Android Studio:原来工程是在Eclipse的ndk环境下开发的,现在要转移到Android Studio中,本文描述了转换的过程。原创 2017-02-19 19:56:00 · 2071 阅读 · 0 评论 -
一次Android面试题
这是一次在qq群里,有群友拍照贴上来的Android面试题,有不少高手进行了部分解答,后来,我做了一次系统整理,当然某些部分也加了些自己的理解,有不同意见的同学,欢迎讨论。原创 2017-02-18 20:14:10 · 841 阅读 · 0 评论 -
使用百度地图的点聚合功能
百度地图的demo中,是在MarkerClusterDemo.java中演示了点聚合功能,不过比较简单,不能满足实际应用的需求。在其基础功能之上,我做了如下改进:1,给标记点传递数据;2,实现聚合点的点击功能,点击后在地图上展开聚合点的内容;3,聚合的起始数目修改,支持2个点也能聚合;4,聚合的范围调整,避免聚合点图标的互相覆盖;5,实现地图状态变化的监听;原创 2017-01-15 10:55:40 · 10728 阅读 · 2 评论 -
百度地图demo(Android Studio)
近期使用百度地图,研究了一下百度地图的demo。一、首先是要申请百度地图开发账号申请地址: http://lbsyun.baidu.com/apiconsole/key 自己注册账号即可。二、然后是创建应用这时要做好两点准备: 1,确定好app的包名,例如我的就是”com.app.app_dev”; 2,准备好一个签名文件,例如我的就是 app_dev.keyStore,原创 2016-12-24 16:37:13 · 4446 阅读 · 1 评论 -
Android软键盘遮挡问题解决
在开发登录界面时,在点击某个EditText准备输入时,弹出的软键盘遮挡了按钮或者下面的输入框,在完成这个文本框的输入后,想要继续下面的操作,需要先隐藏软键盘。这会影响用户操作的流畅感,所以需要解决。在尝试了网上的几种处理方法后,最终选择了一种比较满意的方式。下面先给一个图,来讲解下问题所在原创 2016-11-27 16:24:45 · 6427 阅读 · 4 评论 -
Eclipse转Android Studio遇到的问题小结
Android Studio在近期使用已经是如火如荼,并且Google也不再支持Eclipse了。我终于下定决心,从Eclipse转过来。但是,期间,也遇到不少问题,以及一些差异点,下面小结一下:1,安装Android Studio 2,关联模拟器 3,导入一个简单的eclipse工程 4,导入一个复杂的eclipse工程(有数十个Activity) 5,打包发布 6,几个常用快捷键原创 2016-11-24 20:44:49 · 6057 阅读 · 2 评论 -
Android中Http的Get与Post
网上已经有很多关于http的get与post的文章,不过,我还是将我的实现方式写了出来,主要的区别在于,我的调用函数,有几个优点: 1,做了一个工具类,集成到工程中比较方便; 2,可以直接调用,不需要new一个对象; 3,将返回数据的处理,转到调用者的handler中来处理。原创 2017-03-11 18:28:58 · 571 阅读 · 0 评论 -
Android语音识别之模糊匹配
一、语音识别库的问题最近在做语音识别,使用了科大讯飞的语音识别库。 首先得说,这个识别率挺高的。 可是终究还是有时会出错,特别是一些易混音,例如sh s,l n等。 比如我说“年级”给识别成“联机”了,拼音没学好啊。可是,又有多少人敢说自己发音是完全标准的呢?有没有办法提升正确率呢?毕竟,这种问题,很多人都会遇到呀。 又继续研究了一下,原来,科大讯飞语音识别库已经有针对某些常用场景的,例如订原创 2016-12-11 18:47:48 · 8004 阅读 · 1 评论 -
Android中使用哈希表实现快速查找
最近遇到一个需求,有一个黑名单文件,数据量很大,有几万条数据,将来还有可能更大,需要实现快速查找,检查指定的名单是否存在于黑名单中。 涉及到快速查找,我想到了使用哈希表: 哈希表最适合的求解问题是查找与给定值相等的记录。 先了解哈希表的原理: 先简单理解: 1,先建立哈希表: 通过某种方式,对一条记录做计算,获得一个地址。 将该记录存放在该地址中。 如此循环,建立一个哈希表。 2,在查找时,对指...原创 2018-02-14 17:23:22 · 972 阅读 · 0 评论 -
仿联系人的排序
模仿做一个联系人的排序:1,参考网上部分人提供的方式,是按默认的字符顺序来排序2,对于汉字,转拼音,按字母排序3,要按中国人的习惯来,姓按拼音首字母分段,同一段内汉字优先4,不是第一个字符时,汉字在所有的字母之前5,排序:汉字、字母、数字、其他6,姓名前后的空格,要去掉7,怎么来比较所有字符 8,名字中间的空格,不能去掉原创 2017-08-20 11:29:54 · 1646 阅读 · 1 评论 -
解决快速索引栏挤压的问题
前段时间遇到快速索引栏被挤压的问题,就做了个demo来研究。先描述下问题,就是就是在一个联系人的界面中,布局中有列表,一个展示联系人,一个做为字母快速索引。现在的问题是,当在搜索框输入时,由于弹出软键盘,导致整体布局上移,从而出现快速索引栏被挤压,导致各字母互相重叠,界面乱了。如下图:布局文件是这样的: android:orientat原创 2017-10-29 12:39:37 · 651 阅读 · 0 评论 -
ListView的item展开后完整显示
本文描述了使用ListView展示子项Item,子项里面包含多个内容,默认只显示主要信息,其他部分隐藏,在点击后展开。对于顶部或底部显示不全的Item,进行自动滑动展示完全。并对于子项中是否有按钮的两种情况,都进行了说明。原创 2017-05-21 15:48:56 · 4719 阅读 · 0 评论 -
使用HttpsURLConnection的3种方法小结
最近遇到网络安全方面的问题,要将http转移到https,由于在工程中使用了HttpURLConnection,所以要相应的转而使用HttpsURLConnection,当然大部分是参考的网络上一些前辈们的成果,过程中也遇到了一些坑,在这里进行一下总结。由于https涉及到证书的认证方式,这里简单介绍一下: 关于证书,可以简单把它理解为网站的身份证。而给网站颁发身份证的就是CA(证书颁发机构)。原创 2017-04-16 13:37:33 · 27297 阅读 · 0 评论 -
Android root检测方法小结
出于安全原因,我们的应用程序不建议在已经root的设备上运行,所以需要检测是否设备已经root,以提示用户若继续使用会存在风险。那么root了会有什么风险呢,为什么不root就没有风险,又怎么来检查手机是否root了?我们先来了解下Android安全机制:Android安全架构是基于Linux多用户机制的访问控制。应用程序在默认的情况下不可以执行其他应用程序原创 2017-04-29 19:48:57 · 39806 阅读 · 12 评论 -
搭建一个简单的服务器
做Android开发有一段时间了,经常与后台服务器进行交互,有时就会想,后台服务器到底是怎么工作的呢?我发出去一个http请求,他怎么接收到,又怎么进行处理、返回信息呢? 本文描述了搭建一个简单静态服务器的方法,以及使用servlet+tomcat搭建一个动态服务器的方法。原创 2017-03-19 17:21:43 · 23840 阅读 · 1 评论 -
Volley支持https的3种方法小结
最近遇到网络安全方面的问题,所以要使用https,由于在工程中使用了Volley,所以对Volley的https做了一些研究,当然大部分是参考的网络上一些前辈们的成果,自己进行一下总结。https涉及到证书的认证方式,我就按认证的类型来说明:1,全部信任证书; 2,信任指定证书; 3,信任系统提供的证书(CA颁发);原创 2017-04-08 20:15:26 · 8189 阅读 · 2 评论 -
使用Fiddler模拟服务端返回
在Android开发过程中,经常会调整网络接口,这时就需要测试网络请求的正常、异常各种情况的处理。通常情况下,是跟服务器端来一起联调,然而,有些时候却不具备条件,或者由于服务器端还没有开发好,或者某些异常不好出现,这时候,如果能模拟服务器端的各种返回情况就好了。 Fiddler是一个http调试代理,它能够记录所有的经过它代理的http通讯数据,包括电脑上浏览器访问互联网,或者手机通过wifi代理上网的数据。原创 2017-04-03 18:35:18 · 8723 阅读 · 0 评论 -
理解Volley的重传超时时间计算方法
Volley 的超时重传机制Volley提供了非常方便的超时请求重试策略。 RetryPolicy是一个重试策略的接口,可以实现这个接口来满足特殊的重试策略。对于超时时间,可以总结为这样一个公式:timeOut = time * power(1+ Back Off Multiplier , n);翻译 2016-11-19 14:34:55 · 1623 阅读 · 0 评论 -
自定义View之文字游乐场(二)
四、射击(Shooting)在这四个项目中,射击是最复杂的一个。 我们来数算下其中涉及到的各个元素,先看下屏幕上可见的几个部分: 1,气球; 2,子弹; 3,炮台; 4,计时; 5,积分。 其实还有些看不见的工作,下面来详细说说原创 2016-10-07 20:53:07 · 970 阅读 · 0 评论 -
Eclipse NDK 开发之 HelloWorld
使用Android的新版本sdk、ndk开发,完全不需要进行命令行操作。 1,确认Android开发环境;2,下载ndk,在eclipse中设置路径;3,创建接口类;4,配置Android项目的NativeSupport;5,修改HelloWorld.cpp,实现接口功能;6,修改主程序,调用接口;7,进行工程编译,运行程序;8,Demo下载。原创 2016-06-21 21:57:08 · 1791 阅读 · 1 评论 -
多目录的Android.mk编写--遍历目录下所有C文件
在Android中编译C库时,我们需要在Android.mk文件中,为LOCAL_SRC_FILES变量指定要编译的源代码,以及为LOCAL_C_INCLUDES变量指定头文件。当项目文件越来越多时,这种手动修改很浪费时间。这时我们就需要一个自动遍历项目中所有相关文件的方法了。我从网上看了很多文章,都是使用linux下的命令脚本来遍历目录查找文件,在windows下就不好用了。费了很大功夫,才发现这篇好文章,特此转载,希望能让需要的同学节省一点寻找的时间。转载 2016-07-01 21:43:44 · 7885 阅读 · 0 评论 -
GB2312与utf16、utf8的汉字对照表
GB2312标准共收录汉字6763个,其中一级汉字3755个,二级汉字3008个。本文将GB2312中所有的汉字,在GB2312、utf16及utf8中的编码值都列了出来,方便进行对照查看。转载 2016-07-16 13:16:08 · 24865 阅读 · 0 评论 -
Android极光推送之Hello World
极光推送是手机上比较常用的推送服务。下面我来开发我的第一个Android极光推送程序:第一步:创建极光推送开发者帐号。第二步:Web上创建应用。第三步:下载应用Example。第四步:建立JPush的hello工程。第五步:web上推送通知,手机上收到通知。Demo下载:http://download.youkuaiyun.com/detail/lintax/9552913原创 2016-06-17 22:04:11 · 647 阅读 · 0 评论 -
通过jni实现图像处理
调用jni实现图像处理,分为7步:1、从assets目录下读图片文件;2、把图片文件解码成 Bitmap;3、通过 getPixels 获取 bitmap 中的图片数据;4、通过 jni 接口把获取的byte[] 数组传到c++边;5、c++边获取对应的byteArray;6、对过该指针操作image的数据,做灰度化处理;7、将c++处理后的数据,回放到bimap中,进行显示。原创 2016-07-02 20:23:16 · 6165 阅读 · 1 评论 -
如何生成UTF-16汉字编码表
听见汉字编码表,是不是觉得很高大上的样子,好像不是我们一般屌丝能玩得转的东西。其实,我们也不需要去制定标准,只是从系统中获取出来,这却是一件很容易的事情。下面我来分步骤说说,看完这篇文章,你就会说这事情太简单了。原创 2016-07-09 20:01:46 · 5067 阅读 · 0 评论 -
Android查看调用函数名与行号等信息的日志类
参考网络上的一些文章,我整理实现了一个日志类,实现如下目标:1,能实现调试跟踪功能;2,能打印出类名、方法名、行号;3,能在发布时很容易的关闭日志输出;4,简化在书写代码时添加日志的操作: a,在只需要跟踪运行位置时,能简单的复制粘贴; b,需要增加描述时,方便添加;5,在查看日志时,能方便的挑选自己感兴趣的日志。下面我来根据这几项目标,逐项来说明如何实现,在文章的最后附上代码。原创 2016-06-10 16:24:52 · 3287 阅读 · 0 评论 -
Android JNI 中文字符传递
JNI使用时,需要传递中文,遇到乱码问题,多次尝试失败。遂仔细研究了下编码格式转换相关内容。 本文介绍了C语言中的汉字传递到java端的实现方法,以及java中的汉字传递到C端的实现方法。另附demo下载。原创 2016-06-26 22:10:09 · 4317 阅读 · 7 评论 -
Android SDK版本号 与 API Level 对应关系
新接触Android开发,多次遇到SDK版本与API LEVEL的对应关系,就进行了一下总结,以备后续查看。API是开发用的,所以API LEVEL可以认为是内部的;而SDK的版本提供了新特性给用户,是外部可见的。可以查看以下网址以获取最新的对应关系:[安卓API LEVEL说明](http://developer.android.com/guide/appendix/api-levels.html)原创 2016-06-05 10:13:34 · 38262 阅读 · 1 评论 -
UTF-16汉字编码表
UTF-16是Unicode的一种字符编码。UTF是 Unicode TransferFormat,意为Unicode转换格式。UTF-16使用两个字节来编码一个字符,例如字母"a"的编码是0x0061,汉字"经"的编码是0x7ECF。Java就是使用UTF-16字符编码集。由于2字节最多只能表示65536个字符,不足以表示世界上所有的字符,所以有些比较偏僻的字符会使用2个2字节来表示。汉字Unicode编码的区间为:0x4E00--0x9FA5,是20902个汉字,一般情况下是足够使用的了。本文中展原创 2016-07-09 18:24:09 · 58029 阅读 · 0 评论 -
Eclipse下的Android工程改名
开发的过程,通常都是从一个已有的工程中添加新功能,逐渐的,新功能都成为工程的主体了,此时工程名还是旧的(例如HelloWorld),就不太合适了。 此时,有两种方案, 一、建立一个新工程,将所需文件全部拷贝过去,然后进行相应的修改; 二、直接将工程改名,相应修改里面的内容。本文描述第二种方案,这种方案的好处是,避免了拷贝资源文件时漏掉某些文件的情况。原创 2016-07-30 10:32:56 · 2480 阅读 · 0 评论 -
自定义View之文字游乐场(一)
最近看了Canvas画图中的Path,不由感叹其功能之强大,同时脑海中也产生了很多飞舞的线条,近日将其整理出来,最终归结到一个游乐场中的四个项目: 1,摩天轮 2,滑梯 3,冲浪 4,射击闲话少说,先上个图: 由于总体内容较多,下面只捡关键点进行说明原创 2016-10-05 20:05:23 · 1104 阅读 · 0 评论 -
自定义View之WiperSwitch改进版
近日使用了一个滑动开关,使用的是xiaanming的WiperSwitch,确实是个好东西,很容易就移植到app中,果然是没有版本不兼容问题。 可是在使用过程中,发现有些小问题,然后进行了改进。改进有如下几点:1,支持控件的缩放; 2,解决有时开关会卡在中间的问题; 3,更换了图片;4,解决滑动冲突问题;5,onDraw 中不new;原创 2016-11-06 14:42:09 · 1062 阅读 · 0 评论 -
自定义View之渐变色圆形进度条
先展示下效果图,然后按照自定义view的步骤来实现。目标是渐变色圆形进度条,那么,使用canvas画弧形是基础了,另外是渐变色的效果,这里使用LinearGradient来实现。 既然是提供一个进度条,那么,是需要自定义View的用户来进行设置进度值的。 另外,将渐变色的接口也提供出来了,这样,用户就可以根据需要自己定义喜欢的渐变色效果。 还有view的大小,使用直径来表示。原创 2016-09-06 22:01:00 · 4643 阅读 · 1 评论 -
可以动态修改时间的CountDownTimer
在做一个功能的时候,用到了CountDownTimer,做为一个倒计时功能类,用起来挺方便的。然而,我想动态修改倒计时时间,发现竟然没有这个接口!经过一阵鼓捣,发现可以有两种方案来实现。1,通过反射; 2,重写CountDownTimer,添加上修改倒计时时间的接口。原创 2016-08-13 09:16:58 · 5428 阅读 · 0 评论 -
自定义View之饼状进度条
首先,总结下自定义View的步骤:1、自定义View的属性;2、在View的构造方法中获得我们自定义的属性;3、重写onMeasure ;4、重写onDraw。其次,我们需要将目标定义清楚:1,目标是饼状进度条,基础的canvas画图;2,需要自定义View的用户动态设置进度值的接口;3,用户可设置属性,包括背景色、前景色,以及view的大小。最后,要展示进度条如何使用。原创 2016-08-21 21:38:51 · 2116 阅读 · 0 评论 -
自定义View之实用渐变色进度条
在网上看到一个进度条效果图,非常美观,如下: 进行效果分解:1,渐变色,看起来颜色变化并不复杂,使用LinearGradient应该可以实现。 2,圆头,无非是画两个圆,外圆使用渐变色的颜色,内圆固定为白色。 3,灰底,还没有走到的进度部分为灰色。 4,进度值,使用文本来显示; 5,弧形的头部,考虑使用直线进行连接,或者使用曲线,例如贝塞尔曲线;原创 2016-09-11 20:58:03 · 7423 阅读 · 0 评论