自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iblade的博客

明年的某个时候,你会想着要是今天就行动了该多好。

  • 博客(403)
  • 资源 (9)
  • 收藏
  • 关注

原创 AndroidStudio报错Resolved versions for app (26.1.0) and test app (27.1.1) differ.

新建一个Project发现直接报错:Error:Execution failed for task ':app:preDebugAndroidTestBuild'.> Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app ...

2018-06-20 15:01:07 2138 2

原创 职场晋升法则

                 汇报工作说结果 在汇报工作的时候,不要跟老板说过程有多艰辛,你多么不容易,老板都不傻,否则做不到今天。举重若轻的人老板最喜欢,一定要把结果给老板,结果思维是第一思维。 请示工作说方案  不止一位职场前辈告诉我:不要让你的老板做问答题,而是做选择题。所以在请示工作的时候至少保证给老板两个方案,并表达自己的看法。 总结工作说流程 做工作总结要描述流程,不只是先后顺序逻...

2018-06-14 11:14:00 447 1

原创 Java中Math.round(±11.50) = ?

private void test() { System.out.println("小数点后第一位=5"); System.out.println("正数:Math.round(11.5)=" + Math.round(11.5)); System.out.println("负数:Math.round(-11.5)=" + Math.roun...

2018-06-13 15:58:12 249

原创 Java 实现顺时针螺旋二维数组输出矩阵

如何实现一个输入一个数字N打印N平方数按照上图次序。 private void count(int num) { int colNum[][] = new int[num][num]; final int RIGHT = 0x0, DOWN = 0x1, LEFT = 0x2, UP = 0x3; int type, width, height...

2018-06-13 15:49:10 3452 2

原创 软件生命周期模型—敏捷开发

     敏捷方法是一种以人为核心、迭代、循序渐进的开发方法,适用于一开始并没有或不能完整地确定出需求和范围的项目,或者需要应对快速变化的环境,或者需求和范围难以事先确定,或者能够以有利于干系人的方式定义较小的增量改进。    敏捷方法,也叫适应型生命周期、或者变更驱动方法。    在软件项目的敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简言之...

2018-06-09 11:26:36 6512 1

原创 软件生命周期模型——瀑布模型

模型概述    瀑布模型是一个经典的软件生命周期模型,也叫预测型生命周期、完全计划驱动型生命周期。在这个模型里,在项目生命周期的尽早时间,要确定项目范围及交付此范围所需的时间和成本。      在这个模型里,项目启动时,项目团队专注于定义产品和项目的总体范围,然后制定产品(及相关可交付成果)交付计划,接着通过各阶段来执行计划。应该仔细管理项目范围变更。如果有新增范围,则需要重新计划和正式确认。对于...

2018-06-09 11:03:49 50877

原创 Scrum框架详解总结

接上一篇文章,介绍一下Scrum中每个环节的注意事项。Scrum中的角色Scrum Master——项目负责人、项目经理保护团队不受外界干扰,是团队的领导和推进者,负责提升 Scrum 团队的工作效率,控制 Scrum 中的“检视和适应”周期过程。与 Product Owner 一起将投资产出最大化,他确保所有的利益相关者都可以理解敏捷和尊重敏捷的理念。Team——开发人员、测试人员、美工设计、D...

2018-06-04 17:03:33 11026

原创 敏捷开发初识

 软件市场发展越来越迅速和成熟,传统瀑布式开发模式存在一定的限制,敏捷从而有了更广阔的的平台与机遇。Scrum作为在敏捷中使用最常用的一种方案,受到众多的关注。定义:敏捷开发(Agile Development)不是指某一种具体的方法论、过程或框架,而是一组价值观和原则。理解:首先,敏捷并不是一门具体的技术,而是一种理念或者说是一种思想。它可以指导我们更加高效的开发。 其次,敏捷开发都具有以下共同...

2018-06-04 16:58:05 2766 1

原创 码农翻身精华文章

文章出自大话编程我是一个线程我是一个Java class Javascript: 一个屌丝的逆袭 Java:一个帝国的诞生JSP:一个装配工的没落TCP/IP 之 大明王朝的邮差TCP/IP 之 大明内阁TCP/IP 之 蓟辽督师CPU 阿甘CPU 阿甘之烦恼CPU 阿甘:函数调用的秘密我是一个网卡我是一个路由器我是一个进程我是一块硬盘(上)我是一块硬盘(下)我是一个键盘张大胖的socket张大胖...

2018-06-04 14:56:25 858

原创 互联网入门协议(从用户到服务器)

作者:阮一峰上一篇文章分析了互联网的总体构思,从下至上,每一层协议的设计思想。这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的。七、一个小结先对前面的内容,做一个小结。我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的通信。数据包的结构,基本上是下面这样:发送这个包,需要知道两个地址:...

2018-05-31 20:27:37 1067

原创 互联网协议入门(网络分层)

作者:阮一峰我们每天使用互联网,你是否想过,它是如何实现的?全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?互联网的核心是一系列协议,总称为"互联网协议"(Internet ProtocolSuite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理...

2018-05-29 16:52:39 5653 6

原创 Android 硬件加速使用总结

从Android3.0(API Level 11)开始,支持硬件加速,可充分利用GPU的特性,使得界面渲染更加平滑,但是会消耗更多内存RAM。硬件加速自身并非完美,在某些Android5的rom上,由于内存RAM分配的问题,如果代码不当,会引发闪屏、花屏等渲染问题。硬件加速的主要原理,就是通过底层软件代码,将CPU不擅长的图形计算转换成GPU专用指令,由GPU完成。1.Android3.0(API...

2018-05-08 16:34:20 9416

原创 Unicode,UTF-8,ASCII等字符编码

字符串是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整...

2018-05-08 14:38:47 355 2

转载 Installation failed with message Failed to finalize session : INSTALL_FAILED_INVALID_APK

Installation failed with message Failed to finalize session : INSTALL_FAILED_INVALID_APK: Split lib_slice_9_apk was defined multiple times. It is possible that this issue is resolved by uninstalling a...

2018-04-23 11:56:41 2516

原创 Glide.signature图片缓存

在缓存网络图片的过程中,有一种情况是图片的地址不变,但图片发生了变化,如果只按照图片的地址进行缓存,在加载缓存中的图片时就会发生图片一直显示为旧图的现象。在App中修改用户头像的功能中,如果服务器存储头像的地址保持不变,加载缓存就会出现上述的情况。马上想到,当修改头像之后,马上将本地原头像的缓存清除,并加载新头像,此方法只是暂时解决了APP端头像的显示效果,如果在其他终端进行了头像修改,手机上并不...

2018-04-09 13:48:38 5336 3

原创 adjustViewBounds和scaleType(ImageView属性)

   一、首先:ImageView的scaleType的属性有好几种,分别是matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY (1),android:scaleType="center"保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。...

2018-03-29 16:15:41 769

原创 String和Bitmap相互转换

/** * Base64字符串转换成图片 * * @param string * @return */public static Bitmap stringToBitmap(String string) { Bitmap bitmap = null; try { byte[] bitmapArray = Base64.decode(string, Bas...

2018-03-29 09:45:41 9503 3

原创 Linux x86 和ARM什么区别?

问题:最近在用三星的一款i5处理器的Windows平板,和iPad,以及其他使用ARM处理器的手机相比,发热量大很多,甚至需要借助风扇来散热,耗电量也大了不少。那么就很奇怪,在主频相差不大,并且实际执行效果差不多的情况下,x86架构的处理器的发热量和功耗为什么会那么大?这种差异到底是硬件以及处理器的指令集本身的问题,还是软件层面的问题?回答1:说x86和ARM处理器“实际执行效果差不多”其实有所不...

2018-03-20 17:27:57 69742 5

原创 Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r

Android Studio 3.0 导入工程 出现报错:Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html解决方案: defaultConfig {...

2018-03-19 18:51:13 159

原创 Ubuntu常用命令

如果你工作的目录或文件并不是属于你的帐号的话,比如是更改系统文件配置或者修改其他用户的目录与文件,你的绝大部分命令可能需要加上sudo命令。这个特殊的命令能够暂时的提高你的帐号权限,让你暂时的拥有管理员(root)帐号的权利。更多信息请参考RootSudo。File & Directory Commands 针对文件和目录的命令pwd(显示当前位置): pwd 命令能让你知道你目前工作的目...

2018-03-15 13:11:34 155

原创 透析Java之i++和++i;

关于前置 ++ 与后置++的差别,这似乎再熟悉不过了。前置 ++ 是先将变量的值加1,然后使用加1后的值参与运算;而后置 ++ 是先使用该值参与运算,然后再将该值加1。没错,关于二者之间的区别,的确可以这样认为,并且按照上面操作,运算中也基本不会有什么错误。但是,如果我告诉你,后置 ++ 其实与前置 ++ 一样,在参与运算之前都会将变量的值加1,你信吗?恩,应该是不信,不过,这是真的……(1)如果...

2018-02-28 20:33:26 278

原创 透析Java之“关键字”和“标识符”

一个非常典型的面试题:在Java中有没有goto? 除了goto,今天我们还要谈到几个特别的标识,分别是const、true、false、null。这些标识在Java语言中,是不是关键字呢?如果是,该如何使用?如果不是,与普通的标识符是否又存在什么区别?goto: 在C / C++等语言中,使用goto可以实现程序的跳转,从某些方面来说其提供了一定的方便性,例如,在多重嵌套的循环中,可以

2018-02-23 10:59:52 730

原创 Math.round( )

Math.round(11.5)等於多少? Math.round(-11.5)等於多少?Math类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应,例如,ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;floor的英文意义是地板,该方法就表示向下取整

2018-02-06 21:00:54 240

原创 Java面试String汇总

1.下面这条语句一共创建了多少个对象:String s=”a”+”b”+”c”+”d”; 答:对于如下代码:String s1 = “a”;String s2 = s1 + “b”;String s3 = “a” + “b”;System.out.println(s2 == “ab”);System.out.println(s3 == “ab”);第一条语句打印的结果为false,第二条语句打印的

2018-02-06 15:37:39 1261 1

原创 Android Canvas清屏失效

自定义控件时经常用到Canvas,画新的东西之前需要先清除画布内容,人脸识别项目中需要准确画出当前人脸位置,清空上一帧位置。关于清除画布内容网上有两种非常流行的方法:方法一: mCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);方法二: Paint paint = new Paint()

2018-02-02 12:17:09 2685 1

原创 SurfaceView使用小结

前言Android系统中提供了View可以满足大部分绘图需求,但View主要用于主动更新的情况,用户无法控制其绘制的速度,由于View是通过invalidate方法通知系统去调用view.onDraw方法进行重绘,而Android系统是通过发出VSYNC信号来进行屏幕的重绘,刷新的时间是16ms,如果在16ms内View完成不了执行的操作,用户就会看着卡顿,比如当draw方法里执行的逻辑过

2018-02-02 10:56:10 945

原创 Java中值传递,引用传递

前言我们都知道,java中数据类型分为基本数据类型和引用数据类型。基本数据类型 整型:byte,short,int,long浮点型:float,double字符型:char布尔型:boolean引用数据类型 数组类接口方法的参数分为实际参数和形式参数。 形式参数:定义方法时括号内写的参数。 如private void test(int a , byte[] b){…

2018-01-30 16:31:11 475

原创 MotionEvent基本概念

MotionEvent是事件传递中的一个重要概念——事件类型。事件类型就是指MotionEvent对象所代表的动作。比如说,当你的一个手指在屏幕上滑动一下时,系统会产生一系列的触摸事件对象,他们所代表的动作有所不同。有的事件代表你手指按下这个动作,有的事件代表你手指在屏幕上滑动,还有的事件代表你手指离开屏幕。这些事件的事件类型就分别为ACTION_DOWN,ACTION_MOVE,和ACTIO

2018-01-29 17:33:52 1140

原创 OnTouchListener()监听不到MotionEvent.ACTION_UP?

面试中被问到Android多点触控,不小心被触及到盲区,作为已开发三四年的老司机,那个心酸啊!忙里偷闲特意写个Demo熟悉下事件分发和多点触控吧,搞了半天竟然只能监听到MotionEvent.ACTION_DOWN,其他一概监听不到。先上代码:private void test() { imageView.setOnTouchListener(new Listener(

2018-01-29 16:08:51 4585 4

原创 Android跨进程通信

定义多进程Android应用中使用多进程只有一个办法(用NDK的fork来做除外),就是在AndroidManifest.xml中声明组件时,用android:process属性来指定。不指定process属性,则默认运行在主进程中,主进程名字为包名。android:process = package:remote,将运行在package:remote进程中,属于全局进程,

2018-01-29 15:03:46 299

原创 Android图片格式转换为JPG

在做人脸识别项目中,首先需要注册人脸,目前程序要求在指定的文件夹存入文件格式为JPG的图片即完成人脸注册。使用中,部分用户对JPG格式理解不深,误以为只要以“.JPEG”或者“.jpg”结尾的图片就是JPG格式,甚至有用户还特意把“张三 .png”改成“张三.jpg”伪装成JPG格式来满足要求。  其实文件扩展名(.jpg)与文件格式无关,是人们为了便于区分,强加的扩展名。就像linux系

2018-01-24 18:18:49 11346 3

原创 NDK的OpenGLES2.0 官方Demo

MainActivity.javapackage com.interjoy.fengzhang;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;public class MainActivity extends AppC

2018-01-22 19:46:40 1210

原创 Error: undefined reference to `glCreateShader'-Android NDK OpenGLES

通过NDK调用OpenGLES时,发现报错许多gl开头的方法未定义,具体如下:奇怪的是,报错的方法还可以点击去。网上查询结果 大部分是修改让Android.mk原因是 未配置链接OpenGLES库文件。可是我用的是Android Studio 2.3.3 NDK开发根本看不到Android.mk,只有一个CMakeList.txt

2018-01-22 19:37:01 2158

原创 循环注册

记录一段人脸注册的代码/** * 用于循环获取注册进度的任务线程 */ private final class TaskProgress extends TimerTask { private List listTips = Arrays .asList("看看屏幕", "看看我额头", "看看我左耳", "看看我轮子

2018-01-19 15:45:34 269

原创 Android CMake.txt

CMake是一款比make更强大的编译自动配置工具,它可以根据不同平台、不同的编译器,并通过CMakeLists.txt文件中简单的语句来描述所有平台的编译过程,生成相应的Makefile文件或project文件。CMake被引入于AndroidStudio2.2,其目的是替代原有的JNI/DNK开发方法,使AS在进行JNI/NDK时更加的方便、高效。CMake的优势如下:(1)   允许

2018-01-16 17:48:14 325

原创 Android Studio如何打jar包

前言公司经常和客户提供SDK,提供一个jar包sdk是一件很平常的事。Eclipse 有图形界面和向导供开发者将一个项目导出为jar包,相对来讲是比较简单的,切换到Android Studio后,则需要结合gradle来配置生成jar 包。下面介绍两种生成jar的方法 1.新建New Project ,然后 New Module(名字以ylwlibrary为例) 2.主工程app:bu

2018-01-09 21:57:44 5065

原创 Android Studio之NDK开发(二)

接上一篇NDK开发系列(一),继续介绍有关NDK开发技能一,C++和CMake.txt里面都写了什么?native-lib.cpp中代码介绍:app/CMakeLists.txt构建脚本翻译:内容太多,不想看的童鞋点这里:Android CMake.txt# For more information about using CMake with Android St

2018-01-09 17:28:53 445 1

原创 Android Studio之NDK开发(一)

前言Android Studio2.2版本已经完全支持ndk开发了。而且默认采用CMake方式。 CMake优势不言而喻: 1. 可以直接的在C/C++代码中加入断点,进行调试 2. java引用的C/C++中的方法,可以直接ctrl+左键进入 3. 对于include的头文件,或者库,也可以直接的进入 4. 不需要配置命令行操作,手动的生成头文件,不需要配置android.use

2018-01-09 15:40:39 1278

原创 Android为什么requestWindowFeature()在setContentView()之前调用?

网上关于RequestWindowFeature()的用法有很多,大多都解释的模棱两可,下面这是我遇到这个问题并且得出的一点结论供大家参考。 虽然setContentView()方法大家都会用,但实际上Android界面显示的原理要比我们所看到的东西复杂得多。任何一个Activity中显示的界面其实主要都由两部分组成,标题栏(TitleView)和内容布局(ContentView)。标题栏就是

2018-01-03 20:03:27 649

原创 Android 各类虚拟机JVM,DVM,ART区别

Android开发中我们接触的是与Java虚拟机类似的Dalvik虚拟机和ART虚拟机,下面梳理一下三者区别和原理:一,Dalvik虚拟机Dalvik虚拟机( Dalvik Virtual Machine ),简称Dalvik VM或者DVM。Dalvik 发音有道词典并没有收录。说说来历,它是由Dan Bornstein编写的,名字源于他的祖先居住过的名为Dalvik的小渔村。DVM

2018-01-03 12:01:20 7239

微信QQ登录分享-AndroidStudio

适用于微信和QQ第三方登录和分享使用,包含两个jar和指导文章链接。自己代码工具类。

2018-09-25

Spring从入门到精通(高清珍藏版)

Spring 从入门到开发,全书详细介绍了Spring开发的各个技术细节,该资源是高清的pdf版本,是学习Spring不可多得教材。

2018-09-19

汉字转换拼音的jar

汉字转换拼音的jar,可用于Android或者java开发中需要汉字转换拼音的场景,pinyin4j-2.5.0.jar,带声调,可更改大小写

2017-09-05

adb的压缩包

旧版adb压缩包

2017-06-24

Android弹窗ToastDemo源码

自定义了土司 显示大小 显示时间 显示位置 透明度 圆角与否 显示内容 等

2016-05-20

Android弹窗PopuWindowDemo源码

Android弹窗PopuWindowDemo源码,直接输入提示内容字符串和显示时间就行了

2016-05-20

Scrollview中嵌套ViewPager和ListView常出现的问题

Scrollview中嵌套ViewPager和ListView常出现的问题: ViewPager如果在Scrollview中使用,并且宽高指定为match_parent或者wrap_content则不会显示内容,但是如果将高度指定为200dp,则ViewPager则会将内容显示到屏幕上 ListView同ViewPager类似,必须指定固定高度之后,才可以显示相应的高度,否则只显示一个Item的内容高度,然后在ListView区域上下滑动时,Scrollview并没有效果,而是实现的是ListView的上下滚动事件。

2016-03-30

Android:ScrollView中嵌套ViewPager和ListView示例

2016-03-30

常用布局颜色

用于常规颜色的配置

2016-03-22

空空如也

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

TA关注的人

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