最新文章
安装
npm install --save-dev morgan
使用
var express = require('express');
var app = express();
// 设置日志
var fs = require("fs");
var path = require('path');
var morgan = require('morgan');
// create a write stream (in append mode)
var accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.
获取系统通知插件,github上星数最多的。
https://github.com/katzer/cordova-plugin-local-notifications
1. 安装
cordova plugin add cordova-plugin-local-notifications
安装失败,貌似是源问题,切换了npm源也还是失败。 地址是.de开头的。
使用下面命令安装成功:
# cordova plugin add https://github.com/katzer/cordova-plugin-local-notifications.git
Installi
来源地址:https://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html
来源地址:https://developer.android.google.cn/guide/topics/manifest/uses-sdk-element
调研公司Counterpoint Research数据显示,全球88%的智能手机运行Android系统。
1. Android Studio 内置了 JDK,不需要额外安装JDK了
2. 每六个月一次新版本
2017年,Oracle 宣布,他们将加快 Java 的发布频率,改为每六个月一次。
Java 之前的发布周期为两年一次,Java 9 因为模块化系统(Jigsaw)问题一再延期,已经比预期晚了 18 个月。之前,Java 8 也因为安全问题延期了 8 个月左右。
新的发布周期严格遵循时间点,将在每年的 3 月份和 9 月份发布,相应的版本号为 18.3、18.9、19.3 等。与现在的发布周期不同,新的发布计划不会为了等待某个主要特性完成而延期。如果一个特性还没有完成
执行 "Generate Signed Bundle/APK" 命令:
Android App Bundle (不推荐)
Android App Bundle是一种改进的应用程序打包方式,能大幅度减少应用体积。简而言之,可以理解Google 官方的动态发布方案。
缺点
仅限于通过 Google Play 发布的应用,(Google进一步巩固自身生态)
需要加入到 Google 的 beta program enroll your app in app signing by Google Play in the Play Console
最低支持版本
直接在清单文件AndroidManifest.xml中的android:label=”@string/app_name”去修改即可,直接去修改app_name中的名字,中、英文都是可以的项目的versionName、versionCode若需要修改,可以直接去build.gradle中去修改,然后重新编译即可,不要去清单文件AnddroidManifest.xml中修改,因为那样是没有任何作用的。
小提示:如果是开在Indexing这个位置,可以 File-- Invalidate Caches/Restart-- Invalidate and Restart.
如果卡在 Gradle,可以往下看:
第一次打开项目提示这个,如果选择下载最新的,会很缓慢,该压缩包现在已经有100MB以上了。
解决办法,选择取消,手动设置gradle的安装目录。
设置
如果,选择下载最新的gradle,很可能速度太慢,卡很久。可以先把压缩包下载下来。 比如:
https://downloads.gradle.org/distributions/gradle-4.6
什么是厚涂?厚涂是一种油画技法,用刷子或画笔时与画面的厚色。这种技巧使画面产生一种肌理。厚涂是有计划地厚堆颜料,目的是突出重点、塑造质感。堆砌而成的三维实体,给油画作品带来厚实的外观。现在的游戏cg基本上都是这种画法。对线稿上不是太讲究,更多的是后期上色调整。——简单来讲,就是颜色直接不断的覆盖上去绘制。 其实不管是厚涂还是平涂,在色感和形体上的要求都很高,但是厚涂有可以反复修改的优点,色感不好,颜色容易脏灰焦,可以通过多看图锻炼审美和临摹来提高,当然最好也需要掌握相对基础的色彩基础。形体有问题,画出来的东西没有体积感,可以通过练习素描之中的黑白灰关系来进步。关于上色的内容都是和素描有关系的,
DOM由来
因为Internet Explorer4和Netscape Navigation4分别支持不同的DHTML(动态HTML),为了统一标准,负责制定web通信标准的W3C(World Wide Web Consortium,万维网联盟)开始制定DOM.
DOM0
Netscape Navigator 4和IE4分别发布于1997年的6月和10月发布的DHTML,他们是未形成标准的试验性质的初级阶段的DOM,称为dom0,并不是标准。
DOM1
DOM1是W3C在1998年制定的标准,DOM1级主要定义了HTML和XML文档的底层结构。在DOM1中,DOM由两个模块组成:
1. 钢笔工具、矢量蒙版和布尔运算抠图
比如这样的,可使用钢笔工具画出外面的边缘,选中图层,然后点击矢量蒙版。然后路径内层画个内圈路径。布尔运算排除重叠形状即可。
2, 使用索套工具,快速选择工具时,会出现“选择并遮住”命令,PS CS6的是“调整边缘”。可以调整选区边缘。
3. “图层”命令最下面有个“修边”命令
安装使用 progress-stream 即可
var fs = require('fs');
var express = require('express');
var multer = require('multer');
var progressStream = require('progress-stream');
var app = express();
var upload = multer({ dest: 'upload/' });
app.post('/upload', function (req, res, next) {
// 创建progre
1. 选择只拖动源中的视频或音频
2. 取消序列中视频片段中的音频
右键序列中视频片段,选择“取消链接”命令,取消“启用”命令即可。
1. 声音介绍
声音(sound)是一种物理现象。物体振动时产生声波通过空气传到人们的耳膜经过大脑的反射被感知为声音。声音以波的形式振动传播。
声音是一种压力波:当演奏乐器、拍打一扇门或者敲击桌面时,他们的振动会引起介质——空气分子有节奏的振动,使周围的空气产生疏密变化,形成疏密相间的纵波,这就产生了声波,这种现象会一直延续到振动消失为止。
声音作为波的一种,频率和振幅就成了描述波的重要属性,频率的大小与我们通常所说的音高对应,而振幅影响声音的大小。声音可以被分解为不同频率不同强度正弦波的叠加。这种变换(或分解)的过程,称为傅立叶变换(Fourier Transform
1. 什么是视频视频(Video)泛指将一系列静态影像以电信号的方式加以捕捉、纪录、处理、储存、传送与重现的各种技术。连续的图像变化每秒超过24帧(frame)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面;看上去是平滑连续的视觉效果,这样连续的画面叫做视频。视频(Video)泛指将一系列静态影像以电信号的方式加以捕捉、纪录、处理、储存、传送与重现的各种技术。连续的图像变化每秒超过24帧(frame)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面;看上去是平滑连续的视觉效果,这样连续的画面叫做视频。视频的基本组成是一张一张的图片,那么计算机用什么来表现一张图片?参考看不见我
File System(文件系统)NodeJS 通过 fs 内置模块提供对文件的操作。fs 模块提供的 API 基本上可以分为以下三类:1,文件属性读写。其中常用的有 fs.stat、fs.chmod、fs.chown 等等。2,文件内容读写。其中常用的有 fs.readFile、fs.readdir、fs.writeFile、fs.mkdir 等等。3,底层文件操作。其中常用的有 fs.open、fs.read、fs.write、fs.close 等等。接口的三种风格:异步、同步和期约Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。在引入 TypedArray 之前,JavaScript 语言没有用于读取或操作二进制数据流的机制。 Buffer 类是作为 Node.js API 的一部分引入的,用于在 TCP 流、文件系统操作、以及其他上下文中与八位字节流进行交互。现在可以使用 TypedArray, Buffer 类以更优化和更适合 Node.js 的方式实现了 Uint8Array API。Buff
1. 数组是计算机编程世界里最常见的数据结构。任何一种编程语言都包含数组,只是形式上 略有不同罢了。JavaScript数组的标准定义是:一个存储元素的线性集合(collection),元素可以通过索引来任意存取,索引通常是数字,用来计算元素之间存储位置的偏移量。JavaScript 中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性,索引可能是整数。然而,这些数字索引在内部被转换为字符串类型,这是因为 JavaScript 对象中的属性名必须是字符串。2. 创建数组最简单的方式是通过 [] 操作符声明一个数组变量:var numbers = [];var numbers = new
为什么需要链表数组不总是组织数据的最佳数据结构,在很多编程语言中,数组的长度是固定的,所以当数组已被数据填满时,再要加入新的元素就会非常困难。在数组中,添加和删除元素也很麻烦,因为需要将数组中的其他元素向前或向后平移,以反映数组刚刚进行了 添加或删除操作。然而,JavaScript 的数组并不存在上述问题,因为使用 split() 方法不需要再访问数组中的其他元素了。JavaScript 中数组的主要问题是,它们被实现成了对象,与其他语言(比如 C++ 和 Java) 的数组相比,效率很低,如果你发现数组在实际使用时很慢,就可以考虑使用链表来替代它。除了对数据的随机访问,链表几乎可以用在任何可
1. JavaScript 正则表达式API 共有 6 个,字符串实例 4 个,正则实例 2 个:String#search
String#split
String#match
String#replace
RegExp#test
RegExp#exec
字符串对象正则方法 字符串对象共有 4 个方法,可以使用正则表达式:match()、replace()、search()和split()。 ES6 将这 4 个方法,在语言内部全部调用RegExp的实例方法,从而做到所有与正则相关的方法,全都定义在RegExp对象上。String.prototype.match 调用 RegExp
所有标签