自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘旭

最喜欢的一句话:求其上,得其中;求其中,得其下,求其下,必败。

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

原创 WebView域名劫持问题以及自签名证书验证方式

一,背景介绍WebView尽管有着各种各样的问题,但是至今为止很多前端页面加载到客户端还是要依靠WebView去加载,WebView加载的链接可以是不安全不需要经过证书认证的http,ws协议的域名,当然为了数据的安全性,大部分网页还是会采取https和wss协议的域名,在使用https或wss协议的域名过程中,就会出现域名劫持问题,导致用户无法正常访问,客户端会在Webview的回调函数中收到...

2019-04-03 18:15:16 1699

原创 Android属性动画与自定义属性动画

一.动画基础知识1.动画分类2.什么时候用什么动画?二.动画实际示例1.ObjectAnimator实现普通属性动画2.ObjectAnimator实现自定义动画3.使用ValueAnimator实现动画4.RecyclerView单个Item的属性动画三.结语一.动画基础知识1.动画分类补间动画:Tween Animation 帧动画:Fr...

2018-05-06 22:15:23 853

原创 从高考到程序员回忆录

一.概述本文分为四部分,讲述笔者从初中,高中,大学以及工作四个阶段的过程.后面还会着重介绍作者的一些感悟, 希望学弟学妹和更多的年轻人能从中有所收获.看到CSDN博客上的征文,看到很多人写了自己的从高考到程序员的美好回忆,我内心的澎湃和激动已按捺不住,决定写一下我那还算充满激情的回忆.二.初中阶段依稀记得,我上初中的时候大概是在2004年,因为我出生在一个比较偏远的农村,上初中时,从家到学校骑自行车

2017-06-14 19:34:20 1475 4

原创 设计模式概述与设计模式之面向对象设计原则

一.概述1.为什么要学习设计模式? 首先,从招式与内功的角度来说,Jaca,C#,C++这些开发语言,Eclipse,Android Studio,IntelliJ IDEA,JSP以及各种框架我们可以认为是招式,而数据结构,算法,设计模式,重构,软件工程等则为内功.招式可以很快学会,但内功的修炼需要很长的时间.要想成为一名高级软件开发工程师,设计模式的学习必不可少.2.设计模式是什么?

2017-05-30 12:14:18 588

原创 浅谈混合开发与Android,JS数据交互

本文是作者原创,如转载请注明出处!一.概论 现在时代已经走过了移动互联网的超级火爆阶段,市场上移动开发人员已经趋于饱和,显然,只会原生APP的开发已不能满足市场的需求,随着H5的兴起与火爆,H5在原生APP中的使用越来越广泛,也就是我们常说的混合开发(Hybrid APP).最新很火的微信小程序相信大家都是知道的,实际上微信小程序加载的界面就是一个HTML5的界面,HTML5界面在一些电商类的AP

2017-05-05 17:39:16 7232

原创 10分钟理解Android数据库的创建与使用(附详解和示例代码)

1.Android数据库简介. Android系统的framework层集成了Sqlite3数据库,我们知道Sqlite3是一种轻量级的高效存储的数据库。 Sqlite数据库具有以下优点: (1)零配置,无需安装和配置; (2)储存在单一磁盘文件中的一个完整的数据库; (3)数据库文件可以在不同字节顺序的机器间自由共享; (4)支持数据大小至2TB; (5)足够小,全部源代码大致3万行

2017-04-12 10:19:48 8916 2

原创 Android 6.0动态权限申请

1.Android6.0动态权限的由来 一直以来,Android的权限系统都是最大的安全问题之一,因为在进行安装的时候,所有的权限都会统一进行请求,你必须允许这些权限请求才能进行安装.应用安装后,就可以在用户毫不知情的情况下,访问这些权限.所以有很多应用利用这一漏洞,偷偷地进行搜集用户个人信息或者其他进行其他用途,可以自行脑补一下. Android开发团队显然也意识到这个问题了,于是重新设计了权

2017-03-13 12:29:27 3360 1

原创 机器学习基础(入门篇)

1.什么是机器学习? 简单来说,机器学习就是把无用的数据转化为有用的信息。 机器学习横跨计算机科学,工程技术和统计学等多个学科,需要多学科的专业知识。移动计算和传感器产生的海量数据意味着未来我们将面临着越来越多的数据,如何从海量数据中抽取到有价值的信息也是属于机器学习的范畴。 2.机器学习的主要任务 机器学习的主要任务之一是分类,另一项任务是回归。何为分类呢?我们通常将分类

2017-03-08 17:23:45 1433

原创 ButterKnife8.5.1最新版本使用详细步骤

ButterKnife大大简化了程序员编写代码的速度,.并且在7.0版本以后引入了注解处理器,取代了之前利用反射原理进行findViewById影响APP性能的方式,不再影响APP运行效率,下面直接上图. 1.先在Project(即自己的工程)的build.gradle中添加如下代码 dependencies { classpath 'com.jakewharton:butterknife

2017-02-07 09:59:13 13823 5

原创 Android 遇坑之路及解决方案

一.在状态栏之上弹自定义吐司1.需求:UI设计师设计的原型图是在状态栏之上的位置弹一个自定义吐司,我们的应用内全部都是沉浸式状态栏,将状态栏隐藏掉了的。2.解决方案:首先给toast设置marginTop为负的状态栏高度是无效的,然后查阅相关资料发现Toast是显示在Window之上的,查看Toast的源码发现实际起作用的是Toast的一个静态内部类TN,TN有一个成员变量mParams,...

2018-07-07 18:38:09 1562 1

原创 RecyclerView实现ViewPager效果以及自定义View

一.效果图与需求需求就是图中的效果,最大的那个item是选中的item,其余的是普通的item,并且滑动过程中随收视伴随item缩放的效果,先声明下,这个不是动画效果,只是根据手势滑动的距离不断设置item缩放的比例。二.实现思路与需求分析1.需求分析刚开始想这个效果是不是可以用属性动画中的缩放动画实现,但是用动画实现的话需要设置动画的执行时间,ValueAnimator只...

2018-05-20 22:58:24 1263

原创 ViewPager中显示图片和播放视频填坑之旅

一.需求来源与实现思路1.最近项目需求中有用到需要在ViewPager中播放视频和显示图片的功能,视频是本地视频,最开始的实现思路是ViewPager中根据当前item位置对应的是图片还是视频去初始化PhotoView和SurfaceView,同时销毁时根据item的位置去判断移除PhotoView和SurfaceView。2.上面那种方式确实是可以实现的,但是存在2个问题,第一,Medi...

2018-05-01 15:57:58 2540 1

原创 2018 Android面经分享(京东,百度,陌陌,58到家等知名公司)

美团,京东,陌陌,58到家,科大讯飞,百度,luckin coffee面试总结美团,京东,陌陌,58到家,科大讯飞,百度,luckin coffee面试总结一.引言二.面试经验分享1.美团2.Luckin Coffee3.科大讯飞4.京东生鲜部门5.陌陌6.百度7.58到家三.总结(一些建议)一.引言面对着金三银四的黄金时段,耐不住寂寞的我也准备...

2018-03-11 14:25:40 4013 4

原创 地图投影和矢量瓦片详解

一引言二地图投影1地理坐标系的概念2投影坐标系的概念3地理坐标系和投影坐标系的关系4地图投影的分类5Web墨卡托投影概念和经纬度投影坐标与Web墨卡托坐标的相互转化三矢量瓦片1珊格瓦片和矢量瓦片的概念2矢量瓦片的数据格式3矢量瓦片相比珊格瓦片的优势4Mapbox提出的矢量瓦片标准一.引言    地图投影的分类很多,世界上目前主流地图都是采用的Web墨卡托投影方式(国际组织称其为

2017-11-18 16:29:47 21956 5

原创 迟到的2017年上半年年中总结

目录目录概述2017年上半年总结工作生活2017下半年展望工作生活结语概述转眼间2017年已经过半有一个多月了,本身在7月初就该完成的2017年上半年年中总结硬是拖了一个月才写,尽管这是因为工作较忙和生活琐事的困扰,但是我仍深感愧疚,不能给自己找任何借口,失败了就是失败了,拖延了就是拖延了.本次总结主要从2个方面来写,2017年上半年的工作汇总和收获以及存在的不足,2017年下半年

2017-08-03 20:28:21 598

原创 我的大学从不缺少激情

前言:本文为作者的回忆录,回忆下我们曾经的年少无知.回忆下我们曾经的傲气,回忆下我们曾经逗比的时代,回忆下以前我们的各种童年趣事,荒谬无知,借以前的事情告诫下自己,需要不断努力拼搏,我非常喜欢的一句话:比你优秀的人比你更努力,你又有什么理由不去努力呢?包括从高一到大学毕业

2017-03-30 17:22:55 647 1

原创 Git使用详解(30分钟理解Git)

GIt版本管理工具的强大之处不必多说,下面介绍下 首先说一下Git和SVN的区别. Git是分布式管理系统,SVN是集中式管理系统. Git不需联网就可使用,有一个本地仓库和远程仓库,SVN必须依赖网络. Git比SVN更高效和快捷. 1.Git的安装: 在Linux上安装Git 如果你碰巧用Debian或Ubuntu Linux,通过一条sudo apt-get in

2017-02-24 14:52:02 534

原创 WebView交互传递json字符串并解析

我们知道WebView交互中可以传递基本数据类型的数据值,比如常用的int,String. 但是WebView也可以传递一种很重要很常用的数据格式-json数据. 传递json和传递String数据是一样的,关键就是HTML5端对json数据通过eval()函数进行解析 传递过程中android端调用的最重要的一个函数就是: addJavascriptInterface(new MyObje

2017-02-14 17:06:05 3904

原创 导入okgo的Demo时的报错解决方式

最近项目中需要用到网络框架.okgo是一个很火也很好用的网络请求框架,并且github上有该框架的示例demo,下载下来该示例demo后我直接导入一个module,出现了两个报错1.Error:(74, 13) Failed to resolve: com.github.CymChad:BaseRecyclerViewAdapterHelper:v2.0.0截图如下: 解决办法: 在整个Proj

2017-02-14 15:39:11 3276 2

原创 排序算法之堆排序详解(附最大堆示例代码)

1.堆的概念(最大堆与最小堆) 堆排序的时间复杂度是n logN,具有nl og N时间复杂度的排序算法还有快速排序和理想状态下的归并排序,一般来说快速排序的性能优于堆排序,但堆排序在实际中也有很多的应用,后续会做具体介绍. 堆指的是堆数据结构,被看成是一个近似的完全二叉树,树上的每一个结点对应数组中的一个元素. 完全二叉树满足两个特性: 1.父结点的键值总是

2017-02-12 17:54:24 2886

原创 android 博客大牛地址收藏

CSDN宏祥:http://blog.csdn.net/lmj623565791 爱哥:http://blog.csdn.net/aigestudio 老罗:http://blog.csdn.net/luoshengyang 小巫:http://blog.csdn.net/wwj_748 Mr.Simple:http://blog.csdn.net/bboyfeiyu 任玉刚:http:/

2017-02-10 16:54:29 565

原创 排序算法之快速排序详解(附示例代码)

1.快速排序简介 对于包含n个数的输入数组来说,快速排序是一种最坏情况时间复杂度为O(n的平方)的排序算法.虽然最坏情况时间复杂度很差,但是快速排序通常是实际排序应用中最好的选择.因为他的平均性能非常好,它的期望时间复杂度是O(n lg n),而且其中包含的常数因子非常小. 2.快速排序的原理 快速排序与归并排序已有,也使用分治思想.下面介绍下对一个典型的子数组A[p..r]进

2017-02-10 15:37:44 9908

原创 排序算法之归并排序详解(附Demo)

1.归并排序算法原理 我们学习归并排序算法之前需了解下分治法的概念,归并排序是完全遵循分治模式的. 分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归的求解这些子问题,然后再合并这些子问题的解来建立原问题的解. 分治模式在每层递归时都有三个步骤: 分解原问题为若干个子问题,这些子问题是原问题的规模较小的实例. 解决这些子问题,递归地

2017-02-08 16:45:52 555

原创 排序算法之插入排序详解(附示例代码)

1.插入排序详解和Demo代码 插入排序的工作方式像许多人排序一手扑克牌.开始时,我们的左手为空并且桌子上的牌面向下.然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置.为了找到一张牌的正确位置,我们从右向左将它与已在手中的每张牌进行比较,拿在左手中的牌总是排序好的. 插入排序的伪代码实现INSERTION-SORT for j = 2 to A.length

2017-02-08 16:07:45 3425

原创 OpenGLES2.0绘制2D图片详解(附完整demo)

前段时间项目中有用到OpenGLES进行开发的部分,因此花了2周的时间研究了下OpenGLES,写了个绘制2D图片的Demo,OpenGLES提供了android访问OpenGL的接口,也就是我们熟知的GLSurfaceView的使用,他实际上也是封装了JNI规范进行调用OpenGL的代码. 下面附完整Demo的代码MainActivity.javapackage com.example.draw

2017-02-08 15:23:36 4828 1

原创 JNI编译cximage库(附android.mk和application.mk文件及详细步骤)

我们知道cximage是一个非常强大的C++图片库,其依赖于jasper库,png库,jpeg库还有其他的几种库,因我们项目中只用到了这三个库,所以我只使用jni编译这三种库。 先讲一下jni编译成动态so库的几种方式。 1.使用android studio提供的ndk-build编译的方式。 2.使用linux的交叉编译器gcc编译方式。 3.使用tool-chain工具链进行编译。 4

2017-02-07 17:23:35 1140

原创 WebView使用与JavaScript交互详解(附完整Demo代码)

最近项目中需要用到与HTML5交互,也就是WebView的使用,与JS的交互肯定必不可少.开始写项目之前写了个测试Demo,成功完成了Java与JS的相互调用.先看效果图 下面上完整代码: 首先在Module下的assets目录下有两个本地的.html文件,我们知道assets目录下的文件是被原封不动的打包进apk的.如下图所示 web.html<html><head><meta http

2017-02-07 16:03:57 4773 2

原创 JNI相关配置javah,ndk-build和指令集以及.mk文件详细讲解(亲测可用)

关于JNI,相比大家都不陌生,主要是最近工作用到了很多JNI相关的内容,踩了很多坑,记录下为了以后的学习者少走弯路. 一.先写一下Android studio NDK的下载和配置方式. 1.Ctrl+alt+S打开Settings面板 2.搜索界面输入SDK,之后选择SDK Tools 3.选择NDK工具点击OK下载即可. 点击NDK选中即可下载,建议把CMake一同下载下载完需要配置

2016-12-29 19:07:45 1988 1

空空如也

空空如也

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

TA关注的人

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