自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

狂野之士

技术改变生活,行动创造未来。黑暗中的追求者,不断前往远方。属于应有的幸福、快乐总会到来。

  • 博客(46)
  • 资源 (4)
  • 收藏
  • 关注

原创 TensorflowLite移动端部署

本篇文章主要讲解TensorflowLite在移动端的部署,包括Android和IOS平台。 操作系统 : Mac Tensorflow Version:1.4Tensorflow Lite是Tensorflow针对移动端进行了深度精简过得深度学习模型移动端框运行架,大小仅700kb左右,相对于笨重的tensorflow来说有巨大的优势,特别是针对移动端通常要求安装包比较小的情...

2018-03-08 17:41:58 2741

原创 Flutter教程 (二)Flutter安装及运行

Flutter官网点击访问如何安装Windows用户安装说明Mac 用户安装说明Linux用户安装说明Mac上安装Flutter过程详解前方预警,前方预警,前方预警作为高墙之内的开发者,我们有必要看一看这篇文章Using Flutter in China 。根据文章的提醒。。。,我们只用在命令行执行以下Shell命令export PUB_HOSTE...

2018-03-06 21:33:33 13975 2

原创 EventBus3.x源码解析

本文针对EventBus version 3.1.1进行解读前言框架方便了我们的开发,加速了产品研发的效率。有时候我们可能只会用框架,但是遇到问题的时候却束手无策。古人云,授之以鱼不如授之以渔,这个时候只是差了一个源码解析。只有深入之中,才得其法。我们不重复造轮子不表示我们不需要知道轮子该怎么造及如何更好的造!本文集将持续更新Android主流第三方框架的原理解析,敬请...

2018-03-25 16:26:47 339

原创 Acticity之setContentView()详解

一、前言 Activity是承载UI显示的重要组件,而setContentView()又占据着重要的位置,我们平时所看到的界面都是与它有关系。如果没有设置setContentView()的话Activity就像是没有女朋友的屌丝,比如Service就是默默的服务。二、关键函数、类与变量: attach()、Window、PhoneWindow、DecorView、mConentR...

2018-03-25 16:25:38 363

原创 Android为什么会有65536的方法数量限制

这里给大家推荐一个Android源码网站:http://androidxref.com/(无需翻墙)前言65536是什么样的数?2的16次方或者说64KB下边这个error是不是很熟悉较高版本的Android构建系统下的提示(Android 7.0及以下):Conversion to Dalvik format failed:Unable to execute dex...

2018-03-25 16:24:32 3214

原创 你确定已经掌握了adb的使用?

前言 ADB是android debug bridge的缩写,负责计算机与Android设备的几乎所有通信和协作,可以认为是连接两者的桥梁。ADB源码用了那么久的adb,你知道adb源码在哪里吗?那你又有看过看过adb源码吗? 没关系,点击直达源码ADB命令分类ADB Debugging adb devicesadb forwardadb kill-se...

2018-03-25 16:23:14 519

原创 Android基础-秒懂SurfaceView的双缓冲机制

最近在重温Android的一些基础知识,看到SurfaceView的原理中有用到双缓冲机制,那么接下来我将带领大家学习什么是双缓冲模式。什么是双缓冲模式? 通俗来讲就是有两个缓冲区,一个后台缓冲区和一个前台缓冲区,每次后台缓冲区接受数据,当填充完整后交换给前台缓冲,这样就保证了前台缓冲里的数据都是完整的。双缓冲模式常用来做帧缓冲区交换。我们几乎可以在任何一个图形API中找到双缓冲...

2018-03-17 22:28:56 2850

原创 忘记准考证号获取四六级成绩的方法

之前女票忘记了六级的准考证号,成绩出来的时候特别着急。。。毕竟考了那么多次我也特别着急,刚好在支付宝和微信小程序里都有查询六级成绩的程序,但是特别坑爹的是支付宝的四六级查询要不抽风,还需要根据准考证ID进行手动一一尝试。微信小程序更是如此,并且有些还打着收费的旗号。。。。。。真的看不下去了,来看看我的几行代码吧,轻松帮你找到准考证号和四六级程序。稍等,我们先了解一下四六级准考证。 准...

2018-03-06 23:03:54 7449 4

原创 Flutter教程(一)Flutter概览

Flutter官网点击访问 作为2018世界移动大会的内容之一,Google发布了Flutter的第一个 beta 版本。Flutter 是 Google 用以帮助开发者在 iOS 和 Android 两个平台开发高质量的原生应用的全新移动 UI 框架。现在就可以去 flutter.io快速上手开发精美的原生应用。首先我们要理解什么是跨平台。什么是跨平台?如果你是移动开发者的话,...

2018-03-06 22:26:35 1251

原创 Android Bitmap计算大小 getRowBytes和getByteCount()

int size = bitmap.getRowBytes() * bitmap.getHeight(); 获取大小,Bitmap所占用的内存空间数等于Bitmap的每一行所占用的空间数乘以Bitmap的行数可以获取Bitmap大小的方法有如下几种: 1. getRowBytes:Since API Level 1 2. getByteCount:Since API Level...

2018-03-01 22:09:50 2400

原创 反相颜色

反相即将某个颜色换成它的补色,图像中有很多颜色,每个颜色都转换为各自的补色,相当于把这幅图像反相。在计算机中,当以RGB模式表示颜色时,反相的实现是用255分别减去R,G,B的值,得到的即为反相RGB值。RGB模式反相计算公式:R = 255-RG = 255-GB = 255-B...

2018-02-27 19:56:50 2223

原创 Python文件操作实用函数

文件操作file_path=/Users/demon.li/log.txt分割函数print os.path.split(file_path)Output:('/Users/demon.li', 'log.txt')#返回文件名print os.path.basename(file_path)Output:log.txt#返回文件路径 pri

2018-02-07 19:33:47 286

原创 opencv实现实时“无脸男”

技术方案:Opencv图像处理人脸关键点识别实现流程 这个方案主要采用提取静态场景以及后期根据人脸关键点识别合成图片,最终实现“无脸男”的效果。核心代码 if (landmarks.size() > 0&&!backgroundImg.empty()) { //one channel black image

2018-02-07 19:30:44 299

原创 ViewDragHelper详解(一)

一、ViewDragHelper是什么 看到这个类,我们首先应该想到它是什么? 从字面意思中我们可以大概猜到了一点。那么它具体是做什么的呢?官方文档对这个类进行了简单的阐述: ViewDragHelper is a utility class for writing custom ViewGroups. It offers a number of useful ope

2016-04-20 01:21:19 447

翻译 Android应用签名打包(一)

给你的Android应用签名Android要求所有的应用在安装之前需要进行数字证书的签名,Android利用数字证书给来识别应用程序的作者,并且证书不需要由证书颁发机构进行签名。Android应用程序通常使用自签名证书。该应用的程序开发者持有证书的私钥。 签名概览你可以在debug或者release模式下进行签名。你可以在开发期间在debug模式下对应用进行签名或者将要发布应用时在release模

2016-01-13 18:24:08 528

转载 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion

转载自:点击查看原文作者:Ian Lake,Google Android 推广工程师;翻译:韩国恺。当你发布一个应用之后,(取决于具体的发布时间)可能没过几个月 Android 系统就发布了一个新版本。这对你的应用意味着什么,所有东西都不能用了?别担心,向前兼容是 Android 非常关注的事情。用户在升级到新版 Android 的时候,用以前版本的 SDK 构建的现有应用应该不会出问题。这就是 c

2016-01-13 11:40:17 370

原创 Parcleable详解

序列化的定义: 将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

2015-11-01 20:51:20 1291

原创 数据结构:逻辑结构和存储结构

逻辑结构:集合结构、线性结构、树形结构、图形结构 存储结构:顺序(常用)、链接(常用)、散列、索引

2015-10-30 21:41:18 1117

原创 哈希冲突详解、拉链法、开地址法

哈希冲突详解 我喜欢用问答的形式来学习,这样可以明确许多不明朗的问题。 什么是哈希冲突?比如我们要去买房子,本来已经看好的房子却被商家告知那间房子已经被其他客户买走了。这就是生活中实实在在的冲突问题。同样的当数据插入到哈希表时,不同key值产生的h(key)却是相等的,这个时候就产生了冲突。这个时候就要解决这个问题。 怎么解决哈希冲突? 方法1:拉链法 方法2:开地址法何为拉链法

2015-10-29 23:33:12 11551 3

原创 详解哈希算法、哈希表

哈希算法详解何为哈希算法哈希算法又称为散列技术(Hash技术),哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。

2015-10-29 21:14:12 4622

转载 android AnimatorSet AnimationSet 的区别

原文地址 简介: AnimatorSet 和 AnimationSet 都是动画集合。这里简单介绍下他们的异同,了解这些后在设计动画实现时才能得心应手。 AnimationSet 我们最常用的是调用其 addAnimation 将一个个不一样的动画组织到一起来,然后调用view 的 startAnimation 方法触发这些动画执行。功能较弱不能做到把集合中的动画按一定顺序进行组织然后在执行的定

2015-09-27 00:40:26 712

原创 Fragment生命周期详解

相关图片请点击:详情点击生命周期分五种常见的情况:1. fragment第一次加载的时候即,FragmentTransaction.show();**注:当hide()和show()进行切换的时候,该fragment的生命周期并没有什么变化**09-15 22:48:14.298 17888-17888/com.lyp.idcard I/TAG﹕ IDCardFragment****onAtta

2015-09-15 23:07:42 580

原创 Android获取外置存储卡、内置存储卡路径

一、获取外置内存卡路径该段代码在荣耀1和盖世4机型上测试通过,我们可以获得外置存储卡的路径。/** * 是否存在外置内存卡,如果存在则返回外置内存卡路径 * @return 外置存储卡路径 */ public static List<String> haveExternalStorage(){ List<String> list = new Ar

2015-09-13 23:37:24 911

原创 在android中执行 命令mount

文件系统的分类介绍:原文链接 linux mount命令详解:原文链接该代码在荣耀1上进行的测试,后来在三星的机子上测试发现结果会有不同,因此在不同机子上会有不同的效果 List<String> list = new ArrayList<>(); InputStream is = null; InputStreamReader isr = null;

2015-09-13 22:21:31 1602

转载 HTTP状态码详解

请点击原文链接 Database of HTTP status codes with their IETF + Wikipedia descriptions and helpful code references. Maintained by @citricsquid. New codes and improvements can be commited via the GitHub reposi

2015-09-13 14:46:42 1420

原创 windows下安装python和Django

Python下载地址 Django下载地址在安装Python的时候选择加入系统环境当中,不然在cmd命令中的控制输入python的时候会提示不是内部或外部命令。 Python的安装目录可以任意指定,安装Django的时候需要进入Django的解压目录,如下图: 在控制台输入 python setup.py install,之后会进入自动安装阶段

2015-09-12 14:04:06 424

转载 EventBus, otto, LocalBroadcast的选择

原文链接 greenrobot的EventBus square的otto android support包里提供的LocalBroadcast 三者都是类似订阅/发布的模式,降低了耦合度。与callback比起来,这种事件总线的模式使得两个类没有直接的依赖关系,对架构来说进行了解耦,把双向依赖变成了单向依赖,在大型项目中尤其显得重要。 Why publish/subscribe 一方面,

2015-09-11 23:56:03 859

转载 Things That Cannnot Change(Android里不能改变的东西)

原文链接[本文作者Dianne Hackborn, 一位足迹遍布所有安卓应用框架的工程师 - Tim Bray]有时,一位开发者会对他的应用做一些改变(然后发布新版本)。当新版本的应用覆盖旧版的安装时,发生了一些意想不到的结果——快捷方式失效,桌面小部件(锁屏小部件)消失,甚至是应用根本无法覆盖安装。这是因为,一个应用里的某些部分在应用发布后就不可改变。通过深入理解

2015-09-11 22:56:05 538

原创 Android AlertDialog setContentView输入法不显示

解决开发中的问题、问题,不做无知的程序员,每天学习进步。

2015-09-10 14:27:20 1303 1

原创 Bitmap recycle()说明

前几天360内推一面的时候面试官问道为什么Bitmap会调用recycle()之后还要让bitmap = null;这个方法之前是一直这么用,倒没有怎想。 (知其然不知其所以然)贴一个其它地方的解释:Bitmap类的构造方法都是私有的,所以开发者不能直接new出一个Bitmap对象,只能通过BitmapFactory类的各种静态方法来实例化一个Bitmap。仔细查看BitmapFactory的源代

2015-09-08 16:58:55 3510 1

原创 Android Service详解之生命周期

一、启动Service的方式分类:startService(Intent intent)方法,我将它称之为放羊式的方式。bindService(Intent intent,ServiceConnection conn,int flag);绑定式的方法,与宿主有相同的生命结束时间。二、根据启动的顺序和类型分类:情况1:先bindService,再startService情况2:先startS

2015-09-07 21:55:28 463

原创 Android Studio 初次使用

这篇文章主要面向新手:也是自己走过的坎。。。。。。。我们在网上找到了源代码需要用android studio 打开,运行查看效果。1.怎么到开gradle 工程的android项目呢? 2.怎么导入eclipse工程的android项目呢? 3.怎么配置本地的gradle呢? 由于qiang的原因。。。。所以我们要把gradle下载到本地 网址:Gradle的官方网站下载完之后: 1.打开

2015-08-16 16:49:46 409

原创 android内存优化之一:查看应用的分配内存

int full_memory = (int)Runtime.getRuntime().maxMemory()/1024/1024;int use_memory (int)Runtime.getRuntime().totalMemory()/1024/1024;int free_memory = (int)Runtime.getRuntime().freeMemory()/1024/1024;

2015-07-30 21:11:23 501

原创 Android动画详解之第一话:帧动画(Frame动画)

目录一、表现形式二、使用方法三、官方文档详解

2015-07-28 20:22:34 708

原创 android sdk 更新

对于天朝的用户来说更新sdk是一件麻烦的事情,所以我们需要代理的镜像进行更新。中国科学院开源协会镜像站地址:IPV4/IPV6: http://mirrors.opencas.cn 端口:80IPV4/IPV6: http://mirrors.opencas.org 端口:80IPV4/IPV6: http://mirrors.opencas.ac.cn 端口:80上海GDG镜像服务器地址:http

2015-06-13 18:36:35 821

转载 Android设计模式源码解析之策略模式

Android设计模式源码解析之策略模式本文为 Android 设计模式源码解析 中策略模式分析Android系统版本:4.4.2分析者:GKerison,分析状态:已完成,校对者:Mr.Simple,校对状态:完成1. 模式介绍模式的定义策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而

2015-06-05 10:50:55 488

原创 黑盒测试和白盒测试

黑盒测试不知道软件的源代码,从软件的界面和功能上测试软件工作是否正常,边界用户案例。白盒测试:知道软件的源代码,对软件的某个方法,某个功能,某个模块进行测试测试粒度: 测试方法:junit的框架进行方法测试 测试功能:function test,有测试用例 测试模块:集成测试,与服务器进行联调,整体性调试。

2015-05-08 20:03:36 461

原创 android拨打电话

环境idea 先贴代码 这里是布局文件:

2015-05-08 15:00:34 402

原创 [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

java连接本地mdb数据库String url = “jdbc:odbc:driver={Microsoft Access Driver (.mdb,.accdb)};DBQ=” + firstPath;**数据库连接失败 [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 E:\study\workspace\Dict

2015-04-01 18:24:37 1175

原创 Android摇一摇动作源码详解

Android摇一摇动作源码详解/** android实现摇一摇功能* @ author 李运平 */public class MyActivity extends Activity { /** * Called when the activity is first created. */ SensorManager sensorManager = nul

2015-03-23 21:05:04 951

css仿苹果菜单

看着苹果的导航菜单是不是觉得特别的cool,那就对了。本实例完全让你明白css3实现酷炫的导航菜单是怎么做出来。

2014-10-12

html5制作的简单动画时钟

Canvas是HTML5中十分强大的功能,绘制你想要的图形。数字时钟

2014-10-12

超市管理系统

超市管理系统,大家可以参考一下里边的代码。对初学者还是很有帮助的

2014-07-27

简单的Java登陆界面

一个简单的Java的登录窗口,适用于初学者。

2014-07-14

空空如也

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

TA关注的人

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