diff --git a/README.md b/README.md index 185db2a..9830f25 100644 --- a/README.md +++ b/README.md @@ -14,4 +14,5 @@ - [tutorial](./tutorial/README.md); - [虚幻引擎UE4](./UE4/README.md); - [数据库](./数据库/README.md); +- [其它](./其它/README.md); diff --git "a/tutorial/AndroidStudio\350\256\276\347\275\256.md" "b/tutorial/AndroidStudio\350\256\276\347\275\256.md" new file mode 100644 index 0000000..dde28fc --- /dev/null +++ "b/tutorial/AndroidStudio\350\256\276\347\275\256.md" @@ -0,0 +1,130 @@ +pycharm激活看到的一个方法: +1.先选择:License server +2.输入:http://idea.imsxm.com +3.点击:Activate完成了; + +使用前JAVA环境配置:[这](https://www.jdkdownload.com/)。 + +## 一、安装 + +​ 以下前3步操作尽量就在安装软件前就先修改好,安装完后做了第4步再去打开软件,避免后续麻烦: + +1、修改配置模拟器(就是AVD Manger,模拟安卓手机的)生成的,也是最占空间的一个: + +添加一个系统变量 + +>变量名(N): ANDROID_SDK_HOME # 名字是固定写法 +> +>变量值(V): D:\Cache\Android\AVD # 建议这么写,可以自定义 + +*** + +2、.gradle缓存文件夹的修改(后期加载android项目时,这会占用挺大空间) + +添加一个系统变量 + +>变量名(N): GRADLE_USER_HOME # 固定写法 +> +>变量值(V): D:\Cache\Android\\.gradle # 注意这里.前面有个转义符 + +Ps:这是[官方文档](https://developer.android.com/studio/intro/studio-config?utm_source=android-studio#antivirus-impact)建议的做法,还可以打开软件去修改。(就像上面这么做) + +*** + +3、这应该是修改sdk存放的位置: + +添加一个系统变量(好像没啥用,但去弄一个嘛,==建议安装的时候选择自定义安装==,这样可以选择Sdk位置,占用内存这些) + +> 变量名(N): ANDROID_HOME +> +> 变量值(V): D:\Cache\Android\Sdk + +​ 不搞第3步的sdk的话,可能会说找不到sdk.dir,然后也可以在项目的顶级目录下,编写一个名为`local.properties`的文件,然后里面的内容就一行`sdk.dir=D\:\\Cache\\Android\\Sdk` + +4、然后去安装路径的bin目录下修改`idea.properties`文件(jetbrains系列): + +​ 这就是把一些工程文件的缓存路径改一下,==JrtBrains的所有软件也都改一下==。类似于: + +- ``` + #--------------------------------------------------------------------- + # Uncomment this option if you want to customize a path to the settings directory. + #--------------------------------------------------------------------- + # idea.config.path=${user.home}/.PyCharm/config + idea.config.path=E:/Cache/JeaBrains/Pycharm_profession/.PyCharm/config + + #--------------------------------------------------------------------- + # Uncomment this option if you want to customize a path to the caches directory. + #--------------------------------------------------------------------- + # idea.system.path=${user.home}/.PyCharm/system + idea.system.path=E:/Cache/JeaBrains/Pycharm_profession/.PyCharm/system + + #--------------------------------------------------------------------- + # Uncomment this option if you want to customize a path to the user-installed plugins directory. + #--------------------------------------------------------------------- + # idea.plugins.path=${idea.config.path}/plugins + idea.plugins.path=E:/Cache/JeaBrains/Pycharm_profession/plugins + + #--------------------------------------------------------------------- + # Uncomment this option if you want to customize a path to the logs directory. + #--------------------------------------------------------------------- + # idea.log.path=${idea.system.path}/log + idea.log.path=E:/Cache/JeaBrains/Pycharm_profession/log + ``` + +----------------------------------------- + +------------------------------------------------------------------------- + +​ 以上操作完成后,打开软件,当有一个提示时选择cancle,如果是默认安装,它就会自己把andriod sdk下到类似于这样的路径:`C:\Users\Administrator\AppData\Local\Android\Sdk`,等它下好后,把这个Sdk文件夹整个复制到你想要放的地方(避免后续二次下载),然后进入软件设置,搜索一下`SDK`,然后把那个路径改成你想要放的地方。再去把C盘里的删除就好了。 + +​ 所以为了避免麻烦,一点要选择==custom安装==,这样就能选择andriod sdk的下载路径。 + +## 二、Hello-World + +1. 新建项目时,选择中间的==Empty Activity==,如果是选择No Activity,里面的res是没有layout层的;接着语言是选择JAVA(选择kotlin也能使用) +2. 然后点开lauout里的activity_main.xml==可能是看不到代码的,要点右上角的Code==; + +Tips: + +- AVD的机子,尽量先选用==Nexus 6==这个机子,(用Pixel 2这机子那个半天安装install不上) +- 让虚拟手机==使用电脑的摄像头==:AVD Manger找到要设置的手机,点击倒三角中的Edit-->Show Advanced Setting,然后就能修改Camera + +## 三、问题解决 + +问题: + +​ CMake '3.10.2' was not found in PATH or by cmake.dir property. + +解决: + +​ 进到SDKmanger 然后SDK tools,选择Cmake安装,然后重启一下,不行,就再把==Show Package Details==打开,把那些都勾上,再重启。 + +--- + +问题: + +​ No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi + +解决: + +​ 重启软件,弹出提示gradle升级时,记得去升级,升级了就好了 + +--- + +问题: + +​ 运行时,一直卡在waiting for target device to come online + +解决: + +​ 先把所有的模拟手机关掉,然后在AVD Manger中找到自己要运行的机子,点击最右边的倒三角,选择==cold boot now==就可以了。 + +--- + +问题: + +​ Device supports x86, but APK only supports armeabi-v7a, arm64-v8a ondevice New Device API 29 + +解决(可能会有其他问题): + +​ 在app文件夹里找到build.grade文件,找到==defaultConfig==,里面ndk下有abiFilters的后面添加上==x86==,再重新build && run。(因为用的虚拟设备,可以看到其ABI就是x86) \ No newline at end of file diff --git "a/tutorial/HTML\346\226\207\346\241\243.md" "b/tutorial/HTML\346\226\207\346\241\243.md" new file mode 100644 index 0000000..e2b8e90 --- /dev/null +++ "b/tutorial/HTML\346\226\207\346\241\243.md" @@ -0,0 +1,2667 @@ +注释一行是:ctrl + / + +在当前位置注释:ctrl + shift + / + +Emmet 语法 [速查表](https://www.jianshu.com/p/9352a0411fcb) + +有一个盒子模型和margin和overflow属性,还挺有用的,如果以后用得上,在这里(“.\就业班\07 HTML和CSS\08-margin和overflow属性”)(好像overflow可以把ul列表搞成一行) + +通过css来做动画效果,也挺有意义的(“.\就业班\首页布局案例和CSS3动画及移动端布局\02-CSS3动画”) + +这个网址是[免费图标](https://phosphoricons.com/)的各种类型下载。 + +这个网址是前端各种在线环境,vue等各种三方库,[在线环境](https://pcljs.org/zh-cn/docs/tutorials/getting-started/playground)。(这个网址还能调用PCL的库在浏览器中运行) + +## 一、HTML + +### 1.1. HTML文档结构 + +W3C中规定:所有属性值用双引号括起来(虽然单引号和不要引号都行,但是更加统一规范) + +- 这里包括了html基本组成,引用外部css样式,把网页前面加一个图标 + +```html + + + + + + + 我的第一个网页 + + + + + + + + + + + + + + + + + +

这是一个段落

+ + + + +``` + +### 1.2. 常用标签 + +webstorm中快速打出固定的东西(在一个空白的html文件中): + +1. 先输入`!`再按Tab就行; + - 标签*10再按tab就可以快速打出10个标签,比如 p\*10,再tab就能获得10个p标签。 +1. 或者输入`html:5`再按Tab就行。 + +#### 1.2.1 几个基本标签 + +一般在body中使用各种标签,head中的内容都是安装上面的方法生成的: + +- div:用来布局的,没有具体含义,可以看做层; +- h1:用于控制标题级别的,数字只能是1~6,1级标题最大,6最小,会自动加粗,有默认字号; +- p:表示一个段落,相当于一个回车,里面一般放一段文字; +- br:换行,一段文字想在某些地方换行就加这,==单标签==; +- hr:生成一条水平线,主要起装饰作用,==单标签==; +- a:实现超链接跳转,包括网址和文件; +- img:加载外部图片,==单标签==;这个尽量要给alt属性,以免在加载不出图片时,更友好的显示;加上title属性,鼠标放上面会有title内容的文字提示 +- span:作用与div一样,都是用来布局,不同的是div会单独占一行,而span不会,span用于行内布局; +- ul/ol:前者是无序列表,后者是有序列表,他们的内容都用的是li标签。 + +```html + + + + + + + + Document + + + + +
+ abc_hello_world +
这里面是可以嵌套的
+
+ + +

一、前端的学习

+

1.1、html入门

+
最后一级标题
+ + +

这里面放一大段文字,然后最后结尾p标签就相当于来了一个回车,进行分段

+ + +

这里面放一大段文字,
然后最后结尾p标签就相当于来了一个回车

+ + +

这是标签属性的测试

+ + +
+
+ + +

请点击百度这里

+ + + + 01文档001 + 01文档002 + + + + 图片 + + + +
div1
+
div2
+ span1 + span2 + + + + +
    +
  1. 这是有序列表1
  2. +
  3. 这是有序列表2
  4. +
+ + + 这会自动加引号 + +
+

电话:123456789

+

住址:XXXXXXXXXX

+
+ + + + +``` + +补充一个单标签(都还是加上`/`闭合): + +- 换行符:
+- 水平线:
+- 图片标签: +- 文本标签: +- link标签: +- 元信息标签: + +#### 1.2.2 加强文本样式标签 + +文本格式化标签: + +- b 和 strong:都是对文本进行==加粗==,且都是==行级标签==; + - 但strong除了加粗还有强调作用,注:强调主要用于SEO时,便于提取对应的关键字。 + +- i 和 em:使文字倾斜,且都是==行内标签==,如果是简单的倾斜效果,使用==i==标签就行; + - em同样具有强调效果。 + +- pre:可定义预格式化的文本,这里面的文本通常会保留空格和换行符,而文本也会呈现为等宽字体,文字的字号也会小一号; + - pre是==块级标签==; + - 反观p标签中的空格都是不会被认可的,多少空格都没用 +- small 和 big:均为==行内标签==,让字体缩小或放大一号; + - 浏览器支持的最小字号为12px,需要更小的就要做处理了; + - big在HTML5中被淘汰了,但并没有删除(在ide中,big显示时也会被加一条删除线),能用,但不建议使用。 +- sub 和 sup:将其内的文本设为下标和上标。 + +```html + + + + + 文本格式化标签 + + + 第一种加粗方式 + 第二种加粗方式,并强调 + + 文字倾斜 + 文字倾斜,并强调 + +
这里的文本   会保留空格
+    以及换行,  保持现状的样子
+ +

这是正常字体

+ 这是小一号的字体 + 这是大一号的字体 + +

X1 + X1 = Y

+

下标:X1+Y1 = Y

+

上标: X2 + Y2 = Y2

+ + 上标: X1 + Y1 = Y + + +``` + +#### 1.2.3 \ 等实体转义 + +​ 现象:在HTML中,内容编辑时,如果通过空格键编辑的多个空格,==网页会显示仅且只显示一个空格==,而小于(<)和大于号(>),网站则会认为是标签而无法直接显示在页面中,这都可以通过实体字符来解决。 + +| 实体字符 | 代表的字符 | +| ---------- | ---------- | +| `<` | < | +| `>` | > | +| `&` | & | +| ` ` | 一个空格 | +| `©` | 版权(©) | +| `×` | 乘号(×) | +| `÷` | 除号(÷) | +| `'` | 英文单引号 | +| `"` | 英文双引号 | + +Tips: + +- 一定是以&开头,以`;`结束; + +- 一个` `只代表一个空格,想要多个空格就多次输入 + + ```html +

aa bb

+

aa    bb

+

aa ÷ bb

+ ``` + +然后一般点击左右那个箭头,就是通过大于小于符号做的,然后给它设置样式: + +> ``` +> .sym { +> color: hotpink; +> font-weight: bolder; +> font-size: larger; +> } +>
<
+> ``` + +#### 1.2.4 块级/行内元素 + +W3C中的嵌套规范: + +- 块级元素介意包含行内元素或块级元素,但行内元素只能包含行内元素; +- p,h1~H6,dt标签中只能包含行内标签,不能再包含块级标签; +- 块级元素与块级元素并列,行内元素与行内元素并列,不要混合并列。 + +​ ==块级元素==(相当执行了 display:block; 的操作):块级元素会独占一行,其宽度自动填满其父级元素宽度,一般情况下,块级元素可以设置 width,height属性,一般用来搭建网站架构、布局、承载内容...,它包括以下这些标签:(若设置 display:none 样式就会不可见) + +> address、dir、div、dl、dt、dd、fieldset、from、h1~h6、hr、menu、noframes、ol、p、pre、table、ul等。 + +- 独占一行; + +- 宽度和高度是可控的,如果没有设置其宽度,将默认铺满整行; + + ```html +
this is div
+ ``` + +
this is div
+ +- 其内可以包含块级和行内元素。 + +--- + +​ ==行内元素==(相当于执行了 display:inline; 的操作):行内元素不会独占一行,相邻的行内元素会排列在同一行内,直到一行排不下才会换行,其宽度随元素的内容而变化,行内元素设置width和height无效,一般用在网站内容之中的某些细节或部位,用以“强调、区分样式、上标、下标、锚点”等等。下面这些标签都属于行内元素: + +> a、b、bdo、big、small、br、cite、em、font、i、img、input、kbd、label、select、span、strong、sub、sup、textarea等。 + +- 不会独占一行,与相邻的行级元素占同一行,直到行占满,才会自动掉到下一行; + +- 宽度和高度是不可控的; + + ```html + 这里放点文字 + this is span + ``` + + 这里放点文字 + this is span + +- 其内只有包含行内元素。 + +注:以上两个例子都设置了宽高,也看到效果,只有块级元素可以,行内元素设置宽高是不起作用的。 + +--- + +块级元素和行内元素之间的转换: + +块转行:在属性中加入==display:inline;== + +行转块:在属性中加入==display:block;== + +```html +
块级元素转行内元素
+这里再放点文字 +行内元素转块级元素 +``` + +可以把这一小节的这6行代码放一起,就能在浏览器看出很明显的效果了。 + +### 1.3. 标签通用属性 + +1. 标签名是由标签名、标签属性和文本内容三部分组成(注意:单标签没有文本内容); + +2. 标签属性分为通用属性、自有属性和自定义属性: + + 1. 通用属性有: + + - id:给标签起一个唯一标识符,id在一个网页内==必须是唯一的==; + - class:用来给标签取一个类名(同一类的就方便统一使用 .box 这样的样式); + - title:当鼠标移到该标签时,所显示的提示内容; + - style:用来设置行内样式。 + + ```html + +

这是id1

+

这是id2

+ + +
a_div
+

a_PP

+ + +

鼠标放上来有提示

+ + +

这是一个行内样式

+ + ``` + + 2. 自定义标签属性:通常用来传值或是图片懒加载(滑到某区域时,某区域才加载图片)等方面 + + 格式:data-* // `data-`是固定的,后面的*是自己起 + + 如:\提示文本 // 多个属性之间空格隔开就是,不要加逗号 + + \

.... + 上面的src以及goods_name都是自己起的,尽量跟后面的值相关,然后后面代码会把具体值传过来 + + +### 1.4. form表单 + +form表单是用来实现前后端交互的一个重要标签,常用属性: + +- name:表单名称 +- action:表单数据提交的地方(通常是一个后滩文件名(.jsp、.php、.py等,或网址)) +- method:前端提交数据到后端的方法,主要有:get和post(注:默认是get,但尽量用post,因为get会把数据明文显示出来,而post不会) + +```html + +

+ + +
+ +
+ + +
+ +``` + +表单元素分为四类:(==以下的每一个大类或是大类里又细分的,其实就是一个标签,可单独使用==) + +1. ==**input类**==:主要用来输入,根据其不同的type属性,可以变化为多种状态输入方式 + + - ==== // 定义提供文本输入的单行输入字段(这是默认值,什么都不给就是这) + + - placeholder //文本框内提示 + + - name // 命名 + + - minlength // 最少输入的字符个数 + + - maxlength // 最多输入的字符个数,超过了就输入不进去了 + + - disabled // 失效(disabled或disabled=""或disanled="disabled"都会让这个框变灰而无方法选中) + + - readonly // 只读(这也不能修改,与disabled写法一样,区别是它跟正常框一样,不会变灰) + + - value // 可以给一个默认值(有这个就不会再显示placeholder的提示了) + + - pattern // 正则匹配,(比如注册邮箱时,不合法,直接前端就验证了) + + ```html +
+ + +
+
+ ``` + + - ==== // 定义密码字段 + + 它的属性跟text是一样的,主要就是不是明文显示 + + - ==== // 定义==单选==按钮 + + - name // 这个很重要,做抉择的选项的name值必须一样,这样保证只有一个能被选中,不给的话,两个都能被选中,所以这name跟上面的name不一样 + + - checked // 给这个值,代表默认选择(一般单选都会给一个默认值,多给也是最后一个起作用) + + - 这个还有value、disabled、readonly属性,但是不常用 + + ```html +
+ + 男 + + + 1 + 2 + 3 +
+ ``` + + - ==== // 定义复选框(也叫检查框),可选择0项、1项或多项 + + - name // 这个属性必须要有 + + - 其它属性基本同上面的radio + + 这个选择的==默认值可以不给==,也可以给多个(注意html直接渲染的结果) + + ```html +
+ music + sport + travel +
+ ``` + +
+ music + sport + travel +
+ + - ==== // 主要是文件的上传,点击就会在本地选择文件 + + - name # 常用的是这个属性,具体可看Django笔记中的上传文件的使用 + + - ==== // 定义普通按钮 + + - value // 这个属性它的值主要是在button上显示 + + - disabled // 跟上面用法一样,设置了这个按钮就变灰了,就不能点了 + + ```html +
+ +
+ + + +
+ ``` + + - ==== // 定义图片提交按钮(就是把一个按钮图片化了,弹幕说就是带皮肤的button),用法同button一样 + + - src // 属性 用来放图片的路径 + + - title // 属性 用来鼠标在图片上悬停时的友好提示 + + - 注意:这个点击提交会跳转到demo.app处,跟"submit一样",而button却不会提交 + + ```html +
+ +
+ ``` + + - ==== // 定义提交表单数据至表单处理程序的按钮 + + - value // 属性,提交按钮上显示的字,默认是submit + + 注意:这个点击提交会跳转到demo.app处 + + ```html +
+ +
+ ``` + + - ==== // 前面改了一些值,这个将其全部还原为初始状态 + + - value // 属性 按钮上显示的字 默认是Reset + + ```html +
+ +
+ ``` + + - ==== // 用于输入邮箱时吧,好像用text也一样啊 + +2. ==**textarea类**==: // 这个主要用于输入大批量的内容 + + - 常用属性:name/id/cols/rows/placeholder/minlength/maxlength/required(有这个值表示必须输入)/value + + - 列数固定死了,行数给定了,显示区域就那么大,要是文字超过给的行数,右侧就会出现滑动拉条 + + ```html +
+ +
+ ``` + + ​ 注:这里还可以\