vue-element-admin踩坑记:1.打包后白屏 在根目录下有一个文件:vue.config.js。将publicPath: '/'修改为publicPath: './',改完后重新打包,就能运行了。
Redis事务系列之三Redis乐观锁实现秒杀 一、前言前二章我们讲解的redis事务和redis乐观锁,您可以点击下面文章查看。Redis事务系列之一Redis事务详解Redis事务系列之二Redis实现乐观锁本章我们继续在上面的基础上用乐观锁实现秒杀。二、秒杀的实现我们先来设置一个场景,假设有50个商品,1000个人抢购。那么最终会有50个人买到商品。在实现上我们配合着线程池来实现。具体代码如下:public class Main { public static void main(String[] args) { Redis
Redis事务系列之二Redis实现乐观锁 一、前言前二章我们讲解的redis事务和redis乐观锁,您可以点击下面文章查看。本章我们继续在上面的基础上用乐观锁实现秒杀。二、秒杀的实现我们先来设置一个场景,假设有50个商品,1000个人抢购。那么最终会有50个人买到商品。在实现上我们配合着线程池来实现。具体代码如下:public class Main {public static void main(String[] args) { RedisConnect.redisConn(); String redisKey = "seco
Redis事务系列之一Redis事务详解 一、前言本章是redis事务系列知识第一章,redis事务系列主要讲解以下内容:redis 事务redis乐观锁讲解redis乐观锁实现秒杀我们一步一步来,本章主要讲解事务。二、事务2.1事务阐述讲redis事务之前,我们先来看看事务的定义。事务:一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。但redis的事务不并不是完整意义上的事务,我们称之为弱事务,为什么这么说呢?redis中并没有回滚这种机制,也就是说,在一个事务中,中间一条命令执行失败,并不会导致前面已经执行的
这次让你彻底学会redis中跳表原理,不懂你打我! 一、前言redis是一款优秀的内存高速缓存数据库,它支持较高的并发量。其中redis中是用跳表来索引数据的,本章就详细讲解一下跳表的原理。讲之前,我们现在身临其境的了解一下redis当时在选择跳表作为检索工具的初衷。现在有这样一个场景:内存中有几十万的数据,如何进行快速的检索,并且能快速的增、删、改、查呢。作为redis的作者,他可能有下面几种方案:方法1:用数据库来存储。这种方法弊端就在于速度太慢了。这要是放在高并发的情况下(比如:秒杀),还不得各种慢查询啊。方法2:有序数组来存储。数组来
索引系列知识三:索引总结 一、前言前面二章我们讲解了《 聚集索引与非聚集索引详解 》、《联合索引、覆盖索引和索引下推详解》,大家可以点击查看。这一章我们对什么时候用索引、索引失效的情况进行总结,并编成一个顺口溜方便大家记忆。二、索引使用场景2.1 哪些情况需要创建索引1、主键自动建立唯一索引这个不用多解释了,主键会自动建立主键索引。2、频繁作为查询条件的字段应该创建索引 where打个比方:where a = xxx,我们应该在a 上建立索引。3、多表关联查询中,关联字段应该创建索引 on 两边都要创建索引。4、查
索引知识系列二:联合索引、索引覆盖和索引下推详解 一、前言上一节我们讲解了聚集索引和非聚集索引的区别(索引知识系列一:聚集索引与非索引详解 ),我们知道非聚集索引在查询过程中有回表的过程,这就造成了效率的下降。那如何不用回表或者减少回表以提高查询速度呢?这就是本章要讲的内容。二、联合索引联合索引(也叫组合索引、复合索引、多列索引)是指对表上的多个列进行索引。联合索引的创建方法跟单个索引的创建方法一样,不同之处仅在于有多个索引列。开讲之前我们先弄一张学生表,表数据如下:下面我们给出一个需求:查询表中以字母"L"开头的姓名及年龄。1、常规的写法(
索引知识系列一:聚集索引与非聚集索引详解 前言面试的时候,都会被问到索引有哪几种,一般我们都会回答:主键索引,唯一索引,全文索引等等。但是你回答的是具体的索引,实际上索引大体可以分成二大类:聚集索引和非聚集索引。下面我们具体介绍。聚集索引 (又叫聚簇索引)聚集索引就好比只有正文(没有目录)的汉语字典一样。我们知道汉语字典的排列顺序是从字母“a”开头并以“z”结尾的。如果我们要找“安”这个字。那就需要找以字母‘a’开头的那部分内容,如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字。相反,如果您找到了这个字,那您
B+树和B/B-树的区别?Mysql为啥用B+树来做索引? 一、为什么需要索引?大家都知道,我们读取数据时要避免全表扫描,那如何避免全表扫描呢?目前科学家给出的目标就是索引。索引就好比一本字典的目录一样,有了目录读者就不需要翻找全书来找内容。同样有了索引,数据库就不用全表扫描了。在一张数据表中不管你建不建索引都会有一个默认索引。如果有主键,则mysql会自动按照主键建索引。如果没有主键,mysql也会创建一个默认索引。所以:在创建表的时候,一定要创建主键。二、为什么索引存储在硬盘之中呢?索引是存储在硬盘之中的,这是为什么呢,大家想一下,如果出现意外情况(
想要弄懂GROUP BY看这一篇就够了 一、前言group by 关键字,不管是工作中还是面试都会经常被用到,所以弄懂它是非常有必要的。要弄懂group by 那我们就得联合着:聚合函数、group by 、having 一块讲解。讲之前我们先准备一张表:二、聚合函数为了讲好group by我们必须先将聚合函数,所以大家别着急,一步步往下看。聚合函数是将“若干行数据”经过计算后聚合成“一行数据”常用的聚合函数如下:1.MAX:返回某列的最大值 2.MIN(column) 返回某列的最高值 3.COUNT(column) 返回某
设计模式-构建者(Builder)模式详解 前言在创建一个对象的时候,你是否是酱紫写:Student();Student(String name);Student(String name,int age);Student(String name,int age,String address);Student(String name,int age,String address,String id);又或者是酱紫写:Student stu = Student();stu.setName("小明");stu.setAge(18);
单例模式绝对没有你想象的那么简单!不服来战! 一、前言单例模式(Singleton Pattern)是 Java 中最常用的设计模式之一,同时也是面试的重灾区。有些人可能觉的单例模式很简单,没有什么难的。其实不然,因为牵扯到线程安全的问题,所以单例模式绝对能体现出你的功底。不信接着往下看。二、单例模式详解单例模式大体分为二种写法:饿汉式和懒汉式。1.饿汉式这种方式最简单,所以我们先把这种方式介绍一下,代码如下:public class Singleton { private static Singleton instance =
「设计模式」面向对象7大设计原则—迪米特法则 迪米特法则的定义是:只与你的直接朋友交谈,不跟“陌生人”说话(Talk only to your immediate friends and not to strangers)。其含义是:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。迪米特法则中的“朋友”是指:当前对象本身、当前对象的成员对象、当前对象所创建的对象、当前对象的方法参数等,这些对象同当前对象存在关联、聚合或组合关系,可以直接访问这些对象的方法。迪
「设计模式」面向对象7大设计原则(开闭,单一职责,里氏替换) 一、前言设计模式是各位前辈们总结的优秀经验,学好设计模式对大家的编程都有非常好的帮助。很多人可能会有疑问:我不会设计模式写的也很不错,为什么还要学习呢? 确实,你不会设计模式也能写代码,但是学会了设计模式你会有更多的解决思路,并且阅读一些开源框架也会更容易一些。说起设计模式,很多人都知道GOF的23种设计模式。但是我们要知道的是:GOF的23种设计模式只是常用的集中,设计模式还有很多,很多。万丈高楼平地起,再讲设计模式之前,我们先来聊聊“面向对象七大设计原则”。如果把设计模式比作高楼大厦的话,那么面向
解决Maven构建项目archetype-catalog加载缓慢,甚至报错的问题 前言最近用maven构建项目,但是在选择ArcheType的时候一直卡住加载不出来,如下图所以,所以我构建了一个本地的ArcheType。你可以点击这个链接下载本地ArcheType包(地址:https://download.csdn.net/download/mffandxx/13010629)。下面小编教你如何导入。步骤第一步:Eclipse->【Windown】->【Preference】->【maven】->【Archetypes】。如下图所示:最终效果如下:
为什么数据库下标从0开始 在讨论数组下标为什么从0开始之前我们先回顾一下数组有什么特点。数组优点:1.内存中占据连续的内存空间2.数据随机访问,也就是说获取数据非常高效那为什么说数组的数据可以随机访问而且取数据非常高效呢?下面我们来看这样一张图:上图是一个长度为10的整型数组,我们假设数组的首地址是1000。不难看出当下标从0开始的时候,数组中各个元素的首地址计算公式是:a[i]地址 = 1000 + i*4。(其中1000是数组a的首地址,4是每个元素占的内存大小(int占4个字节大小)。)可以看的出数组中根据下
数据结构和算法的区别 1、前言开发的时候,我们经常会把数据结构和算法合到一块讲,很多人会认为数据结构就是算法。其实不然,数据结构和算法其实是二门相互独立的学科,下面小编就来讲解一下这二都的区别。2、正文通俗来讲:数据结构:解决数据如何在计算机中存储和组织的问题。算法:解决如何高效的处理和分析数据的问题。可以看的出:1.数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的。如果没有数据结构,算法一无是处。2.反过来,如果数据结构脱离了算法,数据结构只是一堆冷冰冰的数据。正因为有算法的存在,我们才能非
git 修改ignorl文件的方法 今天修改ignorl文件,忽略一些不必要的文件,但是这里边还有不少问题,这个总结一下步骤,记录一下为了以后方便再遇到问题。 git rm -r --cached . git add . git commit -m "fixed untracked files" git push origin master...
合理利用cdn策略,别让CDN把你的服务器拖垮 最近我们服务器监控显示每隔15分钟,cpu利用率就是100%,一天得有100多次,报警短信频繁发送。经过仔细排查我们排除了以下原因:1.计划任务的执行2.黑客攻击的原因无意中,我看了一下cdn,一下子恍然大悟,原来cdn每隔15分钟会回源。我们的cdn服务器也有上百台了,这么多cdn都来主服务器上回源能不卡吗?找到原因了,我们更改了一下策略:1.cdn每隔2小时回源2.选出3台cd...
Tideways和xhgui打造PHP非侵入式监控平台(转载非原创) 最近我们服务器频繁报警,cpu利用率时不时的超过80%,今天在服务器上安装了一个神器,这个神器详细统计了哪个方法\哪条sql性能过高,超级好用!点击这里看一下这位大神写的文章,我就是参照这个文档做的。参考文档1.大神博客2.tideways3.xhgui...
centos 运维日常笔记 前言运维二字说的有点大了,我是个小菜鸟,把日常centos用的命令记录一下,方便查阅。1. centos限定IP代码vim /etc/hosts.allow 最后一行加入:sshd:192.168.0.222:allow // 多个IP可以按照此格式写多行vim /etc/hosts.deny最后一行加入:sshd:ALL // 除了上面允许登录的IP,其它IP都拒绝登录servic...
PHP成长路线 第一阶段:基础阶段(基础PHP程序员)重点:把LNMP搞熟练(核心是安装配置基本操作)目标:能够完成基本的LNMP系统安装,简单配置维护;能够做基本的简单系统的PHP开发;能够在PHP中型系统中支持某个PHP功能模块的开发。时间:完成本阶段的时间因人而异,有的成长快半年一年就过了,成长慢的两三年也有。1.Linux基本命令、操作、启动、基本服务配置(包括rpm安装文件,各种服务配置等);...
web前端的几个问题 一、前言前端开发也有几年了,从只会安卓,到现在小程序,Vue, React 等等好多都用过。 回头想想觉的坤哥说的一句话真有道理:“JS要一统天下”,虽然说的夸张一点,但是JS在前端开发中起着举足轻重的作用,而且在所有语言使用人数排名中也会越来越高。这篇文章我只想说一下做前段的一些看似没有用其实必须掌握的一些东西。这里只是简单谈谈,不可能深入讲解。有些人认为做前端很简单,做做页面就行。但我认为...
Elasticsearch Head插件的安装 前言head 插件是一个监控ES状态和管理集群的一个插件,装上这个后,我们的学习就变的直观一些,方便我们学习安装1.进入网站下载并解压。2.进入解压目录中,执行下面命令npm installnpm run start你会看到这个界面:3.打开网址:“localhost:9100”,你会看到:当然你可能和我的界面不一样,因为我做了配置。不要担心,下面就会讲到。4.配置ES...
Elasticsearch安装 一.前言今天的这篇文章就是我学elasticsearch(以后简称ES)的开始。因为我刚开始学,很多不明白的地方,而且很多东西都记不住,所以一点一点的整理对我来说是最好的方式了。因为我属于比较笨的人。也希望我的文章对后来学习的人有一定的帮助。二.安装步骤:1.点击官网下载ES的安装包。2.解压安装包,解压目录如下:bin ------------------------------...
react-native-wechat 引发的血案 前言最近项目中添加微信登录。如何做我就不说了,点击这个网址添加就行。问题android添加后很正常,一点问题没有。大家如果有问题,多检查检查。ios添加后:微信授权登录后,前端死活获取不到数据。这个问题困扰了我很久。下面给出解决方案:微信端确认后返回到自己开发的程序 需要注意:URL Types 的设定LSApplicationQueriesSchemes 的设定设定// ios...
一个','引发的血案(Trying to add a 'RCTRawText [text: ,]' to a 'RCTView') 1 问题介绍React Native 各种坑,但是你遇到过这个问题吗?Cannot add a child that doesn't have a YogaNode to a parent without a measure function!(Trying to add a 'RCTRawText [text: ,]' to a 'RCTView')这个问题在IOS手机上一点问题没有,...
React native 解决android手机 Echart空白不显示的问题 前言遇到Echart,android空白不显示的问题吗?下面给出解决方法方法1.复制文件tpl.html(路径: node_modulesative-echarts\src\components\Echarts)至android\app\src\main\assets目录下(没有assets文件,就建一个,反正打包时也得建) 并在其中加入如下代码: 兼容手机端<met...
ReactNative 物理返回键失效的问题 前言你们遇到过React native做的app, 物理返回键不好用的情况吗?网上搜了各种资料,始终无法解决。最后搜到了这篇大神的文章,大家可以点击进入看看。 然后我就照着第二种方法做完了,我直接把人家的代码拷贝一下,如下:方法2: 在你的项目导航栏首页里自定义导航路由:const MyApp = StackNavigator({ Home: { screen: HomeScree...
React Native android打包 前言从没接触过RN开始赶鸭子上架,7月份一个月做了3个app。项目结束要打包了,各种坑啊。这里整理一下,我的悲惨打包经历。打包步骤1.生成签名文件(略,网上查查吧) 2.在 android/app/src/main/ 目录下创建 assets 目录 项目根目录下,执行命令 :react-native bundle --platform android --dev fal...
react-native 填坑之canOverrideExistingModule=true app在模拟器中卸载了,再重新编译,app却打开不了,直接报错:Native module VectorIconsPackage tired to override modulename for module name VectorIconsPackage.If this was your intention,setcanOverrideExistingModule=true这个是P...
ReacNative:报错Cannot add a child that doesn't have a YogaNode to a parent without a measure function! 大家遇到过这个问题吗?这个问题折磨了我半天,最终找到了原因。 这个错误的意思是:多了一个&gt;号,ReactNative 把它当成一个text了,而你又没有Text包起来,肯定会报错解决方法:全代码搜 "&gt;&gt;" 然后我发现了错误代码,如下图结尾希望对大家有所帮助。...
React-Native 上拉加载下拉刷新 1.前言react-native 上下拉加载的控件效果都不好,找了半天没找到,正打算自已封装的时候,无意中找到了一个比较好的控件,大家看一下: react-native-refresh-list-view这个是基于flatlist封装的,效果还不错,大家可以用一下。2.结尾加油吧!...
Error:Could not expand ZIP *.aar 大家有遇到这个问题吗:FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:prepareSmartPropertyReactNativeSplashScreenUnspecifiedLibrary'.> Could not expand ZIP 'F...
reactnative 数据存储封装 前言写app肯定是要用到数据存储的。我参考了这篇大神的文章,又进行了进一步封装,比之更加简单一点,大家可以点击看看。代码1.第一步新建storageapi.js文件//注意:这个类不准用!要存储,请用storagemanager.jsimport { AsyncStorage } from 'react-native';import Storage from 'reac...
Application XXX has not been registered. 前言Application MyTest has not been registered. This is either due to a require() error during initialization or failure to call AppRegistry.registerComponent.RN报了这个错,下面给解决方法:解决方法运行react-nativ...
Execution failed for task ':app:processDebugResources'. 最近开发RN遇到各种坑,费劲脑筋的解决了,竟然忘了写博客上,以后遇到的问题都记下来。以备后面查阅。
Print: Entry, “:CFBundleIdentifier”, Does Not Exist 前言用react-native开发一段时间了,真想吐槽一下,特别是android,真心难用。最后我直接到IOS上开发了,开发完了再返回来修改android效果。Print: Entry, “:CFBundleIdentifier”, Does Not Exist问问你们有木有遇到这个问题!,然后网上查了各种资料都不管用, 比如:改成0.44.3版本。再比如替换boost_1_63_...
ReactNative 隐藏顶部导航栏 static navigationOptions = { tabBarVisible: false, // 隐藏底部导航栏 header:null, //隐藏顶部导航栏 };
reactnative 修改状态栏的颜色 前言官网StatusBar讲的详细,大家翻翻看,这里直接贴一段简明扼要的代码供大家使用:export default class ViewProject extends Component { render() { return ( <View style={styles.container}> <Status...
Vue.js 父子组件相互传递数据 1、前言最近在用vue.js做项目,前期什么都不懂,光知道网上查资料,查完就忘。循环往复浪费时间,是时候把一些东西整理一下了。2、父组件向子组件传递消息父亲组件中的代码如下: <CheckCart :allNum="productsnum"//向子组件传递的数据productsnum, > im
vue项目中如何引入iconfont中的图片 1.前言Iconfont中有很多图片供我们使用,如何在vue项目中引入Iconfont的图片呢?请看下文2.方法2.1挑选图标的过程挑选图标的过程(共6步) 进入网站:Iconfont网址:http://www.iconfont.cn 点击网站上方的“官方图标库”,选择自己喜欢的图标。 选择好自己喜欢的图标,选择添加至项目,然后新建项目,并输入名称。 项目添加好后,会自动给我们转入到我们项目
electron+vue 1.前言最近在学习electron,但是electron和IView、element等Ui框架结合的是在不好,但是终于找到了解决办法,请看这篇文章。2.结尾就讲到这里吧,涨新知识,我会及时更新的。哈哈
Win7如何搭建React-Native 环境(64位系统) 1.前言本人这几天开始学习reactNative,第一步当然是搭建环境,网上找了很多帖子,都没有搭建成功,但是终于找到了一位大神的帖子,照着搭建成功了,点击下面就可以进入查看:windows 64位下,React-Native环境搭建详解 (Android)2.结尾这里我就无耻的转发这个大神的帖子了,希望大家不要骂我。他写的很详细了,我已经照着搭建完了。我本身android开发者,后面我会持续的更新
uri获取图片路径 最近的项目,小米手机选择图库失败,网上搜捕资料,特做此记录: public static String getPathByUri(Context context,Uri uri){ if ( null == uri ) return null; final String scheme = uri.getScheme(); String data
TextView显示人民币符号¥ 这真的是个鸡肋的问题,如果你复制上面的人民币符号到你的TextView中,显示出来的效果是这样的 :。网上有很多种复杂的解决方案,什么修改字体啥的,我也是服了,那我还不如去换个图片呢。 简单暴力的解决方法,复制下面这个符号:¥ 到你的代码中,就不会了。
关于百度推送10101错误码的解决 今天集成百度推送,老是报10101错误,文档上说是menifest配置错误,我对照了检查半天依旧没找到原因。 我下载一个DetectToolsForDeveloper检查了一下,发现PushService这个类没有启动,(大家如果找不到原因,建议大家下载一个DetectToolsForDeveloper检查一下,挺不错的)。这是因为百度推送的jar包进行了混淆,找不到PushService这个类,
Android 深入讲解Handler机制 1 前言众所周知,在我们android中有主线程和子线程之分,我们对它们做一下区分:1.在主线程中刷新UI,但不能做耗时操作,否则很可能报ANR异常2.在子线程中不能刷新UI,但可以做耗时操作这是二者的区别,也是一对矛盾。有没有办法解决这种问题呢?google官方给出的方法就是:在子线程中进行耗时的业务逻辑,然后利用Handler通知主线程刷新UI。学习Handler机制意义: 在androi
android webview获取html代码和根据id获取value 1 前言最近做一个项目,需要webview获取网页中input的内容,把知识整理一下,做个记录,也希望对大家有所帮助。2 获取html内容2.1 初始化webviewwebview.getSettings().setJavaScriptEnabled(true);webview.addJavascriptInterface(new InJavaScriptLocalObj(), "java_obj
Android开发之ThreadLocal的使用 1 前言今天在学习handler源码,发现了handlder中使用了ThreadLocal。不但如此,在开源框架EventBus中也使用了ThreadLocal,所以对这个ThreadLocal做了一个研究,这里做一个总结,为一下篇handler讲解打下基础。2 什么是ThreadLocal官网:实现一个线程本地的存储,也就是说,每个线程都有自己的局部变量。所有线程都共享一个ThreadLocal对
php学习笔记一初学php语句 1 前言记录一些查询mysql的语句以备忘。2 mysql语句<?php error_reporting(E_ALL||E_NOTICE||E_WARNING); $con = mysql_connect("172.16.3.82","jishubu","jishubu");//链接服务器 if(!$con){ die("链接服务器不成功!!!".mysql_
php学习笔记一基本配置 1 前言最近在学习php,把一些东西总结一下,省的时间长就忘了。本文仅仅是记录个人学习笔记。2 配置我用的是xampp软件。1.在D:\xampp\apache\conf\extra\httpd-vhosts.conf中添加:<VirtualHost *:8095> DocumentRoot "D:\xampp\htdocs\OA\branches\Smm\src" ServerNa
android贝塞尔曲线之波浪效果 1 前言为了给我以前的博客填坑,这章讲解贝塞尔曲线的几个常用的应用:1.波浪效果2.qq聊天列表上的沾粘体效果3.翻书页效果4.弹性球效果大家如果把这些看懂并掌握,以后做和贝塞尔曲线相关的效果应该都能信手拈来!2 波浪效果 原理分析: 其实这个效果应用了2个阶的贝塞尔曲线来完成的,先看一下原理分析图: 有上面的图可以看出:在屏幕的左面画出了1.5个波长,在屏幕中画出1个波长,然后让它
爱的贝塞尔曲线讲解 1.贝塞尔曲线介绍贝塞尔曲线的数学基础是早在 1912 年就广为人知的伯恩斯坦多项式。但直到 1959 年,当时就职于雪铁龙的法国数学家 Paul de Casteljau 才开始对它进行图形化应用的尝试,并提出了一种数值稳定的 de Casteljau 算法。然而贝塞尔曲线的得名,却是由于 1962 年另一位就职于雷诺的法国工程师 Pierre Bézier 的广泛宣传。他使用这种只需要很少的控制
android ViewDragHelper讲解 文章的开头奉送上代码,方便对照学习。1 前言2013年谷歌i/o大会上介绍了两个新的layout: SlidingPaneLayout和DrawerLayout,现在这俩个类被广泛的运用, 其实研究他们的源码你会发现这两个类都运用了ViewDragHelper来处理拖动。 ViewDragHelper解决了android中手势处理过于复杂的问题,下面让我们总结一下android中都有那些处理vie
android Behavior讲解 文章的开头奉送上代码,方便大家对照学习。1.前言在前一篇的文章中大家是否看到这么一行代码:app:layout_behavior="@string/appbar_scrolling_view_behavior"当时我们不知道这是干嘛的,直接照用就行了,后来发现这玩意是一个类!而且我们还可以自定义!所以,今天这篇博客我们首先来学习一下如何自定义Behavior.1.1 什么是behavior官网的解释
Android LayoutInflater讲解 一、前言以前用adapter的时候每次就知道copy代码,对LayoutInflater不求深入了解,真是惭愧!今天抽空把LayoutInflater的源码看了看,终于有些感悟,记录下来,希望对大家有些帮助。二、方法介绍我们最常用的就是以下2个方法:1.LayoutInflater.from(MainActivity.this).inflate(int resource, ViewGroup ro
CoordinatorLayout+Behavior讲解 文章开始前奉送上代码,方便大家对照学习1.前言CoordinatorLayout是在Google I/O 15上,谷歌发布了一个新的 support library中的控件,它是support library中最重要的控件之一,所以大家要掌握它! Coordinator在英文中是“协调者”的意思,所以我把CoordinatorLayout叫做“协调者布局“。2 本章内容本章主要讲解如下内容: 1.
android之那些年在微支付上踩过的坑! 最近软件的微支付突然不能用了,经紧急查找发现微支付的支付接口更换了(心中顿时千万只xx奔腾而过,微信太霸道了,更换了也不通知一声!!)于是就开始了我的微支付踩坑之路,更新微支付花了2天的时间,虽说不长但遇到了很多问题,这里记录一下,希望能帮助到大家!1 简单介绍新微支付和以前的变化还是很大的,上传数据和返回数据都采用了xml的方式。这里给出微支付的官方文档地址,方便大家查阅。微支付这个官方文档弄的真
android 在onTouch中添加长按事件 一、前言最近做一个项目要在Ontouch方法中监听长按事件,在网上搜索了不少文章都不太满意。于是就去搜源码,找到了一种解决方案。现在贴出来希望对大家有所帮助.二、解决方法这里我就只把解决方法贴出来,源代码大家可以根据OnLongClickListioner这条线索找找看。这在这里就不找了。public class MyView extends View { private int Touch
android MD之矢量图和动画篇 1 简介Android 5.0 中增加了对SVG 矢量图形的支持,利用svg我们能做以下东西:1.炫酷的动画效果2.Vector图像可以自动进行适配,不失真3.同样一张图,用Vector来实现,可能只有PNG的几十分之一4.使用简单,很多设计工具,都可以直接导出SVG图像,从而转换成Vector图像Google在Android 5.X 中提供了下面两个新的API来帮助支持SVG。 方法
Material Design - 定制阴影以及视图裁剪 1.简介google的设计风格有3种:拟物化,扁平化,材料化。目前主流的风格就是材料化。严格来说Material Design是一个全新的设计语言,而不是设计风格。所以我们并不能说材料化比扁平化好。材料化的特点就是拟物扁平化。材料化比扁平化多了一个z轴的概念,而这个z值就是View距离视图的高度(elevation),而高度决定了阴影(shadow)的大小。下面通过2张图来看看它们之间的对比。
Material Design - RecyclerView和CardView篇 1 简介2014年07月23日Google在I/O 2014上推出了新的设计语言Material Design。到现在已经2年半了,我才开始学习Material Design,甚是惭愧啊。2 目录Material Design的相关知识点我分成以下几章,后面我会慢慢的整理出来。1.材料主题 2.用于创建卡片与列表的小组件 3.定制阴影以及视图裁剪 4.矢量图片 5.使用 Drawables
Material Design - 主题篇 1 简介2014年07月23日Google在I/O 2014上推出了新的设计语言Material Design。到现在已经2年半了,我才开始学习Material Design,甚是惭愧啊。2 目录Material Design的相关知识点我分成以下几章,后面我会慢慢的整理出来。1.材料主题 2.用于创建卡片与列表的小组件 3.定制阴影以及视图裁剪 4.矢量图片 5.使用 Drawables
java反射简单讲解 众所周知,p1是Person的实例对象,那么请大家想一个问题:Person这个类是不是一个实例对象呢?答案:是!Person类是java.lang.Class类的实例对象。注意: 我们写的任何一个类都是Class类的实例对
设计模式的七种原则 所谓无招胜有招,练一门功夫分为内功和外功。外功好比招式,就是所谓的23种设计模式。而内功呢,就是心法,那就是这6种法则。光会外功那是花拳绣腿,内功修为才是境界。如此众多的设计模式,学完2遍,3遍可能也会忘的只记得单例和工厂模式。但是只要原则记住,在以后的设计中,有意无意就会用的设计模式的精髓。话不多说,我们来讲一下设计模式的六种原则...
android service简单讲解 文章开头奉送上本文用到的部分代码,方便大家对照学习。1 简介Service 是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。我们可以用服务处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序交互,而所有这一切均可在后台进行。作为四大组件之一的Service,在面试中也是是常考的内容,所以我们必须掌握。注意 有一点希望大家注意,Service默认是执行在UI线程中,它既不创建自己
android contentprovider简单讲解 文章的开头奉送上代码方便大家对照学习。1 ContentProvider简介ContentProvider是android4大组件之一,它的出现是为了在二个应用之间共享数据。在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件、等等内容,都是不允许其他直接访问的。但有时候沟通是必要的,不仅对第三方很重要,对应用自己也很重要。比如,一个联系人管理的应用。。。
android Sqlite简单讲解 文章前面奉上代码,方便大家对照学习。1 Sqlite简介Sqlite作为嵌入型数据库出现在android中,它的作用是为了解决大量数据存储。2 Sqlite基本语法简单介绍2.1 sqlite数据类型android开发中sqlite支持的数据类型:NULL、INTEGER、REAL、TEXT、BLOB。 但是sqlite也支持如下的数据类型: 名称 介绍 smallint 16位整数
Fragment讲解 在文章的开头奉送上代码,方便大家对照学习。1 前言项目中frgment是常用的东西,最近有空想把它整理整理。 fragment是“片段”的意思。在android中fragment是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间(如:平板上应用)、解决activity负载过重的问题等。。。
android RecyclerView 讲解 文章的前面奉送上代码,方便对照学习。1 前言RecyclerView是Android5.0带来的一个旨在替代ListView的新控件,收录在android.support.v7.widget包下。转眼之间,它已经面世2多年了。最近仔细的学习学习这个控件,做一个记录。 本文介绍如下内容:1.添加分隔线的介绍(DividerItemDecoration)。2.添加删除动画的实现。3.布局管理器的实
Android 百分比布局讲解 1 前沿android 推出了百分比布局,有了这个布局我们按照百分比来分配屏幕。大家是不是听了很激动?下面我们来慢慢讲解。2 控件介绍2.1 控件介绍我们来看一下这几个百分比控件:1. PercentRelativeLayout2. PercentFrameLayout.它们分别继承了FrameLayout和RelativeLayout两个容器类。大家可能奇怪为什么没有PercentLinearL
Could not reserve enough space for object heap 报错:Error occurred during initialization of VMCould not reserve enough space for object heapCould not create the Java virtual machine.解决:定位到目录 C:\Users\.gradle 创建文件gradle.properties 内容:org.gradle.jv
android序列化讲解 序列化在android中使用的频率非常高,尤其是在intent传递对象的时候。学习序列化非常有必要,在android中有二种序列化方式:1、实现Serializable接口2、实现Parcelable接口1 为什么要将对象序列化?打个比方:雨伞在不用的时候要把它缩短、折叠起来存放。用的时候要伸长,伸展开使用。在这个例子中:”缩短、折叠”属于序列化,为了方便保存。”伸长,伸展”为了使用。
讲解Intent中的四个重要属性——Action、Data、Category、Extras 1 前言Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、直接自动调用合适的程序打开不同类型的文件等等。诸如此类,都可以通过设置Intent属性来完成。
MVP模式简单介绍 1.前言今天琢磨MVP模式,看着网上那么多介绍的文章看的我头痛。 这会突然恍然大悟:原来早在很久以前我就一直在项目中用,只是我不知道而已!!!2.逻辑思维这个东西还是很简单的,这里做个记录,以备以后用到的时候能快速想起。
Android 架构心得 什么是架构在我看来,软件架构绝对不只是框架的堆砌,看我看来,架构是为了方便软件维护、扩展、安全性、切入性(我也不知道有没有人提出过这个关键字,因为的确很少看见,简单来说我这里说的切入性就是指一个以前没有接触过这个项目的人,能快速加入到这个项目中,对项目进行维护、修改和扩展)