Android开发问题-DaataBinding
DaataBinding布局文件示范,而且要在build.gradle(Modle:app)中加入
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849buildFeatures{ dataBinding = true // for view binding : // viewBinding = true }全部代码示范apply plugin: 'com.android.application'android { compileSdkVersion 30 buildToolsVersion "30.0.1" defaultConfig { applicationId "com.example.databinding" minSdkVersi ...
Android开发问题-android studio 里面build,clean区别
android studio 里面build,clean区别、Build目录下几个选项的区别
Make Project:编译Project下所有Module,一般是自上次编译后Project下有更新的文件,不生成apk。
Make Selected Modules:编译指定的Module,一般是自上次编译后Module下有更新的文件,不生成apk。
Clean Project:删除之前编译后的编译文件,并重新编译整个Project,比较花费时间,不生成apk。
Rebuild Project:先执行Clean操作,删除之前编译的编译文件和可执行文件,然后重新编译新的编译文件,不生成apk,这里效果其实跟Clean Project一样。
Build APK:前面4个选项都是编译,没有生成apk文件,如果想生成apk,需要点击Build APK。
Generate Signed APK:生成有签名的apk。
为了更清楚的知道clean和rebuild到底有什么区别,我把自己的一个小项目执行了一下这两个操作,并用对比软件对比了一下,红色部分是执行build操作的时候多出来的步骤。
大概 ...
Android开发问题-关于SharedPreference.Editor的apply()和commit()方法异同
关于SharedPreference.Editor的apply()和commit()方法异同在androidstudio上coding经常会提示一些警告,通过它我们能了解到一些自己不了解的好的编程习惯和少用的方法,本次发现就是一个例子,用习惯了SharedPreference.Editor的commit()方法,但是在studio提示使用apply()方法替换,看到apply()方法有点不知所措,因为根本不了解这个方法的作用随即翻阅android的api和google了一下apply()和commit()两者的区别。 首先,两者都能实现shared存储的功能,但是两者还是有着一些不同
apply方法是将share的修改提交到内存而后异步写入磁盘,但是commit是直接写入磁盘,这就造成两者性能上的差异,犹如apply不直接写入磁盘而share本身是单例创建,apply方法会覆写之前内存中的值,异步写入磁盘的值只是最后的值,而commit每次都要写入磁盘,而磁盘的写入相对来说是很低效的,所以apply方法在频繁调用时要比commit效率高很多。
apply虽然高效但是commit也有着 ...
MySQL为什么需要一个主键(自增长)
MySQL为什么需要一个主键(自增长)主键自增长:ALTER TABLE sys_manager MODIFY user_id INTEGER AUTO_INCREMENT;
表中每一行都应该有可以唯一标识自己的一列(或一组列)。
一个顾客可以使用顾客编号列,而订单可以使用订单ID,雇员可以使用雇员ID 或 雇员社会保险号。
主键(primary key) 一列(或一组列),其值能够唯一区分表中的每个行。唯一标识表中每行的这个列(或这组列)称为主键。*没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只设计相关的行。*
虽然并不总是都需要主键,但大多数数据库设计人员都应保证他们创建的每个表有一个主键,以便于以后数据操纵和管理
表中的任何列都可以作为主键,只要它满足一下条件:
任何两行都不具有相同的主键值
每个行都必须具有一个主键值(主键列不允许NULL值)
主键值规范:这里列出的规则是MySQL本身强制实施的。
主键的最好习惯:
除MySQL强制实施的规则外,应该坚持的几个普遍认为的最好习惯为:
不更新主键列的值
不重用主键列的值
不在主键列中使用可能会更改的值( ...
MySQL 使用 Workbench 建表时 PK NN UQ BIN UN ZF AI G 的含义
MySQL 使用 Workbench 建表时 PK NN UQ BIN UN ZF AI G 的含义PK - Belongs to primary key作为主键
主键(primary key) 一列(或一组列),其值能够唯一区分表中的每个行。唯一标识表中每行的这个列(或这组列)称为主键。没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只设计相关的行。
NN - Not Null非空
UQ - Unique index不能重复
BIN - Is binary column存放二进制数据的列
UN - Unsigned data type无符号数据类型(例如-500 to 500替换成0 - 1000,需要整数形数据)
ZF - Fill up values for that column with 0’s if it is numeric填充0位(例如指定3位小数,整数18就会变成18.000)
AI - Auto Incremental自增长
G - Generated column基于其他列的公式生成值的列
MSQL服务无法启动
MySQL 服务正在启动。MSQL服务无法启动。服务没有报告任何错误。请键入NET HELPMSG 3534 以获得更多的帮助。(双系统修复二)因为我以前下过mysql,所以这次懒得在官网重新下载,因此碰到了不少的麻烦。
1.通过DOS窗口输入net start mysql时,却提示服务名无效
解决方案:
(1)首先我们先进入mysql的安装目录下的bin目录
(2)之后打开DOS命令窗口(一定要管理员身份打开,不然会报错),进入该目录下(一定要进入该目录,否则操作错误)。
(3)输入命令:mysqld –install。提示安装服务成功。
(4)如果要卸载服务,可以输入如下命令:mysqld –remove。提示移除服务成功。
2.MySQL 服务正在启动。MSQL服务无法启动。服务没有报告任何错误。请键入NET HELPMSG 3534 已获得更多的帮助。
解决方案:
mysqld –initialize 初始化data目录即可。
Altium Designer 的entry sheet ,offsheet和port作用(转载)
Altium Designer 的entry sheet ,offsheet和port作用(转载)
图纸结构
图纸包括两种结构关系: 一种是层次式图纸,该连接关系是纵向的,也就是某一层次的图纸只能和相邻的上级或下级有关系。
另一种是扁平式图纸,该连接关系是横向的,任何两张图纸之间都可以建立信号连接。
网络连接方式
Altium Designer提供了6类网络标识分别是:Net Label(网络标号),Port(端口),Sheet Entry(图纸入口),
Power Port(电源端口),Hidden Pin(隐匿引脚)、Off-sheet Connector(图纸外连接符)。
网络标识是通过名字来连接的,名字相同就可以传递信号。但是特别要注意的是,除了“Port”与“Sheet Entry”这一对标识以外,
其它不同类的网络标识,即使标识名字相同,相互之间也没有连接。比如Net Label及 ...
解决系统代理后微软服务无法使用
适用v2rayN-v4.20.7,其他版本未测试
管理员打开cmd,运行
解除全部uwp应用的网络隔离FOR /F “tokens=11 delims=" %p IN (‘REG QUERY “HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings”‘) DO CheckNetIsolation.exe LoopbackExempt -a -p=%p
FFMPEG转换视频格式
FFmpeg转换视频格式
CMD进入视频所在文件夹
如果是单个文件,就用如下命令:
1ffmpeg -i "input.flv" -c copy "output.mp4"
将这里的input改为你的文件名,output改为你想得到的文件名即可。
如果是整个文件夹中的所有flv文件需要批量转成mp4,那么使用以下命令:
1for %i in (*.flv) do ffmpeg -i "%i" -c copy "%~ni.mp4"
注:新生成的mp4文件会沿用原文件名。

