Android架构组件:ViewMode概述
摘要:作用: 问题: ViewModel的用法: 架构组件为界面控制器提供了 ViewModel 辅助程序类,该类负责为界面准备数据。 在配置更改期间会自动保留 ViewModel 对象,以便它们存储的数据立即可供下一个Activity/Fragment实例使用。如以下示例代码所示: 可以从 Activi
阅读全文
posted @
2020-04-28 12:13
JJ_S
阅读(1571)
推荐(0) 编辑
Android的Listener用法
摘要:为一个控件添加响应事件,需要为其设置监听器(Listener)。在Android中,View的Listener方法,有多种创建方法。以View的OnClickListener举例: View的Listener方法一样,都是View类的接口,实现Listener里面的接口,就可以处理相关事件 创建Li
阅读全文
posted @
2020-04-27 20:47
JJ_S
阅读(4007)
推荐(0) 编辑
GestureDetector.SimpleOnGestureListener的使用教程
摘要:Android sdk给我们提供了GestureDetector类,通过这个类我们可以识别很多的手势 当用户触摸屏幕的时候,会产生许多手势,例如 手势|描述 | | onDown(按下)|手指刚刚接触到触摸屏的那一刹那,就是触的那一下。 onFling(抛掷)|手指在触摸屏上迅速移动,并松开的动作。
阅读全文
posted @
2020-04-27 20:34
JJ_S
阅读(1321)
推荐(0) 编辑
Android处理touch事件
摘要:Android事件处理机制是基于Listener实现的,比如触摸屏相关的事件,就是通过onTouchListener实现; 所有View的子类都可以通过setOnTouchListener()、setOnKeyListener()等方法来添加对某一类事件的Listener; Listener一般以I
阅读全文
posted @
2020-04-27 20:28
JJ_S
阅读(543)
推荐(1) 编辑
onCreate(), onFinishInflate(),onMeasure(),onLayout(),onDraw()Visibility …
摘要:onCreate(): onMeasure(): onLayout(): onDraw(): onFinishInflate(): onAttachedToWindow(): onDetachedFromWindow(): onWindowVisibilityChanged(int): Constr
阅读全文
posted @
2020-04-27 20:26
JJ_S
阅读(885)
推荐(0) 编辑
Android学习
摘要:0.Android开发者指南 https://developer.android.google.cn/guide https://developer.android.com/guide http://hukai.me/android-training-course-in-chinese/input/
阅读全文
posted @
2020-04-27 20:21
JJ_S
阅读(166)
推荐(0) 编辑
Android创建一个测试工程的例子
摘要:第一步:创建一个Android工程 第二步:选择一个Empty Activity(也可以是别的) 第三步:选择路径与保存目录,注意Name(这里是test)和Save Location最后一个包的名字必须一致(原因不清楚?) 第四步:创建好后生成的目录解释
阅读全文
posted @
2020-04-27 20:11
JJ_S
阅读(182)
推荐(0) 编辑
Android Studio安装
摘要:安装Android Studio: 安装SDK: 选择一个进行安装(可以编辑安装路径) 下载SDK源码: 选择路径,点击编辑 最后点击Next即可将源码下载到你所选的SDK路径中
阅读全文
posted @
2020-04-27 20:01
JJ_S
阅读(155)
推荐(0) 编辑
C++11 多线程 - Part 7:条件变量
摘要:翻译自:https://thispointer.com//c11 multithreading part 7 condition variables explained/ 在本文中,我们将通过示例讨论C++ 11多线程中条件变量的用法。 条件变量 条件变量是一种事件,用于在两个或多个线程之间进行信号
阅读全文
posted @
2020-04-22 15:29
JJ_S
阅读(414)
推荐(0) 编辑
C++11 多线程 - Part 6:事件处理的需要
摘要:翻译自:https://thispointer.com//c11 multithreading part 6 need of event handling/ 在本文中,我们将讨论多线程中事件处理的需要。 有时一个线程需要等待一个事件发生,比如一个条件变为真,或者一个任务由另一个线程完成。 例如,假设
阅读全文
posted @
2020-04-22 11:59
JJ_S
阅读(384)
推荐(0) 编辑
C++11 多线程 - Part 5:使用锁解决争用条件
摘要:翻译自:https://thispointer.com//c11 multithreading part 5 using mutex to fix race conditions/ 在本文中,我们将讨论如何在多线程环境中使用互斥锁来保护共享数据,并避免争用条件。 为了修复多线程环境中的争用条件,我们
阅读全文
posted @
2020-04-20 16:50
JJ_S
阅读(308)
推荐(0) 编辑
C++ 声明,定义与初始化
摘要:一、变量定义: 用于为变量分配存储空间,用于存放对应类型的数据,变量名就是对相应的内存单元的命名,还可为变量指定初始值。程序中,变量有且仅有一个定义。 二、变量声明: 用于向程序表明变量的类型和名字,但声明不一定引起内存的分配。定义也是声明:当定义变量时我们声明了它的类型和名字。 三、初始化: 初始
阅读全文
posted @
2020-04-20 14:19
JJ_S
阅读(2156)
推荐(1) 编辑
运算符重载和函数重载
摘要:[toc] 1. 定义 重载就是赋予新的含义。函数重载可以让一个函数名有多种功能,在不同情况下有不同的操作,运算符重载也是同样。 实际上,我们已经在不知不觉中使用了运算符重载,例如:+号可以对不同类型的数据进行加法操作; 2. 作用 用复数类举例 3. 规则 1)不是所有运算符都可以重载 能重载的运
阅读全文
posted @
2020-04-20 14:12
JJ_S
阅读(1057)
推荐(0) 编辑
C++构造函数初始化列表与构造函数中的赋值的区别
摘要:C++类中成员变量的初始化有两种方式:构造函数初始化列表和构造函数体内赋值。 一、内部数据类型(char,int……指针等) 二、无默认构造函数的继承关系中 三、类中const数据成员、引用数据成员,必须在初始化列表中初始化,不能使用赋值的方式初始化 四、包含有自定义数据类型(类)对象的成员初始化
阅读全文
posted @
2020-04-20 12:21
JJ_S
阅读(585)
推荐(0) 编辑
C++11 多线程 - Part 4: 数据共享和争用条件
摘要:翻译自:https://thispointer.com//c11 multithreading part 4 data sharing and race conditions/ 在多线程环境中,线程间的数据共享非常容易。但是这种简单的数据共享可能会造成应用程序出现问题。其中一个问题就是争用条件。 什
阅读全文
posted @
2020-04-20 12:03
JJ_S
阅读(274)
推荐(0) 编辑
c++ 数据类型转换:static_cast dynamic_cast reinterpret_cast const_cast
摘要:c语言中我们经常使用类似于 int a = (int)3.14等这种强制类型转换。 标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、const_cast 1. static_cast 静态类型转换 用法: static_cast <
阅读全文
posted @
2020-04-17 21:54
JJ_S
阅读(222)
推荐(1) 编辑
C++ 模板
摘要:[toc] 模板是泛型编程的基础,泛型编程及以一种独立于任何特定类型的方式编写代码。 模板是一种对类型进行参数化的工具,通常有两种形式:函数模板和类模板; 使用模板让程序员能够编写与类型无关的代码。比如:编写一个交换两个int型的swap函数,这个函数就只能实现int型,对double,字符这些类型
阅读全文
posted @
2020-04-17 10:48
JJ_S
阅读(980)
推荐(0) 编辑
C++ class和struct的区别?
摘要:C++ 中保留了C语言的struct关键字,并且加以扩充。在C语言中,struct 只能包含成员变量,不能包含成员函数。而在C++中,struct 类似于 class,既可以包含成员变量,又可以包含成员函数。 struct能包含成员函数吗? 能! struct能继承吗? 能!! struct能实现多
阅读全文
posted @
2020-04-16 20:48
JJ_S
阅读(467)
推荐(0) 编辑
Mac安装升级python
摘要:1.如果有别的不需要的版本可以卸载,例如卸载3.6,安装3.7 1.1 删除Python 3.6 framework 1.2 删除Python 3.6 应用目录 1.3 删除/usr/local/bin 目录下指向的Python3.6的连接 2.安装python3.7 2.1 在官网上下载pkg,点
阅读全文
posted @
2020-04-16 11:18
JJ_S
阅读(2455)
推荐(0) 编辑
repo常用命令
摘要:1.初始化 2.同步代码 3.查看分支 4.repo对所有git仓库的同步操作
阅读全文
posted @
2020-04-16 10:55
JJ_S
阅读(1843)
推荐(0) 编辑
svn常用操作
摘要:1.拉svn环境 2.查看本地变更 3.提交新加的文件 4.将变更提交到远程仓库
阅读全文
posted @
2020-04-16 10:39
JJ_S
阅读(125)
推荐(0) 编辑
git 常用命令
摘要:Git 是一个开源的分布式版本控制系统 https://www.yiibai.com/git/git_status.html 0. git config 安装完 git 后,首先需要设置你的用户名称与邮件地址。 每一个 git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改。 gi
阅读全文
posted @
2020-04-15 21:27
JJ_S
阅读(189)
推荐(0) 编辑
markdown常用方法
摘要:1.设置”文字”的颜色为#ff00ff <font color=#ff00ff>文字</font> <font color=#00ffff>文字</font> 2. 设置空格     3. 设置文字 “我是尺寸”的字体大小 <font size=4>我是尺寸</font
阅读全文
posted @
2020-04-15 21:09
JJ_S
阅读(136)
推荐(0) 编辑
学习opengl shader参考网站
摘要:https://learnopengl cn.readthedocs.io/zh/latest/ https://www.cnblogs.com/kex1n/p/3941765.html https://learnopengl cn.github.io
阅读全文
posted @
2020-04-15 21:07
JJ_S
阅读(282)
推荐(0) 编辑
VSCode/Sublime使用git
摘要:VSCode查看代码提交记录等工具 在vscode的左侧栏中的Extensions中搜索GitLens,安装,每行代码后都可以看到commit信息 Sublime插件之GitGutter代码差异管理 Mac中Sublime安装软件: 填写git安装位置,Mac中在终端输入which git就可以查找
阅读全文
posted @
2020-04-15 21:05
JJ_S
阅读(293)
推荐(0) 编辑
友元
摘要:[toc] C++中,类有public、protected、private三种属性的成员,通过类对象可以访问public成员,只有本类的函数可以访问类的private成员。 (1) 访问非static成员时,需要对象做参数; (2) 访问static成员或全局变量时,则不需要对象做参数; (3) 如
阅读全文
posted @
2020-04-15 20:55
JJ_S
阅读(154)
推荐(0) 编辑
C++中构造函数或析构函数定义为private(转)
摘要:通常构造函数/析构函数的声明位于public区段,如果在private会有什么样的后果? 那么,private构造函数怎么才能被用到呢?两种方法: (1)构造函数定义private 在程序中实例化一个对象,编译器将调用构造函数。如果构造函数是private,由于在class外部不允许访问私有成员,将
阅读全文
posted @
2020-04-15 20:40
JJ_S
阅读(2270)
推荐(2) 编辑
c/c++中常用的内存操作函数
摘要:1.malloc()函数,free()函数,calloc()函数,realloc()函数 1.1 malloc()函数 【原型】: void *malloc(size_t size); // 参数表示动态内存分配空间的大小,以字节为单位。 // size_t 是typedef重定义的类型,xxx_t
阅读全文
posted @
2020-04-15 19:53
JJ_S
阅读(1337)
推荐(0) 编辑
获取C/C++字符串/字符数组长度 && strlen函数与sizeof的区别
摘要:在C/C++中常用的获取字符串长度或者字符串数组长度的函数有 length() // string类对象的成员函数 size() // string类对象的成员函数 sizeof() // 求所占总空间的字节数,静态的,跟初始状态字符数组的大小有关系,大小等于初始时字符数组的大小或者等于初始时字符数
阅读全文
posted @
2020-04-15 19:42
JJ_S
阅读(1280)
推荐(0) 编辑
数组作为函数参数
摘要:两种形式:非引用形式、引用形式 ① 非引用形式 在使用数组做参数时,编译器会自动将数组名转换为指向数组第一个元素的指针。因此下面三个形式的形参声明其实是一样的,形参类型都是 int 注意:根据数组名无法知道个数,需要再加一个参数传递数组元素的个数。 ② 引用形式 注意:这样数组就不会转为指针了,而且
阅读全文
posted @
2020-04-15 19:32
JJ_S
阅读(366)
推荐(0) 编辑
C++ 基本的输入输出
摘要:C++ 的 I/O 发生在流中,流是字节序列。 【头文件:】 头文件|描述 | | iostream|定义了cin(标准输入流)、cout(标准输出流)、cerr(非缓冲标准错误流)、clog(缓冲标准错误流) iomanip|该文件通过所谓的参数化的流操纵器(比如setw和setprecision
阅读全文
posted @
2020-04-15 19:26
JJ_S
阅读(240)
推荐(0) 编辑
c++11多线程(转)
摘要:转:https://blog.csdn.net/ouyangfushu/article/details/80199140 [toc] 1. 普通函数多线程调用 1.1 无参数函数 c include include using namespace std; class TestThread { pu
阅读全文
posted @
2020-04-15 18:39
JJ_S
阅读(169)
推荐(0) 编辑
C++11多线程 - Part 3: 为线程传递参数
摘要:翻译:https://thispointer.com//c11 multithreading part 3 carefully pass arguments to threads/ 为了给一个线程相关联的调用对象或函数传递参数,仅仅只需要在std::thread构造时传递额外的参数。 默认情况下,所
阅读全文
posted @
2020-04-15 17:46
JJ_S
阅读(847)
推荐(0) 编辑
C++11多线程 - Part 2: 连接和分离线程
摘要:翻译:https://thispointer.com//c11 multithreading part 2 joining and detaching threads/ 本篇讨论的是std::thread的连接和分离 使用std::thread::join()连接线程 一旦一个线程启动,那么另一个线
阅读全文
posted @
2020-04-15 16:14
JJ_S
阅读(1291)
推荐(0) 编辑
C++ IO流(转)
摘要:转载: https://segmentfault.com/a/1190000010266504?utm_source=tag newest https://blog.csdn.net/z961968549/article/details/79954632 当程序与外界进行信息交换时,存在两个对象:一
阅读全文
posted @
2020-04-14 17:51
JJ_S
阅读(129)
推荐(0) 编辑
C 字符串
摘要:在 C 语言中,字符串实际上是使用 null 字符 '\0' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。 下面的声明和初始化创建了一个 "Hello" 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 "Hello" 的字符数多一个。 依据数组初
阅读全文
posted @
2020-04-14 16:52
JJ_S
阅读(141)
推荐(0) 编辑
C++ string
摘要:函数名称|功能 | | "构造函数" |产生或复制字符串 "析构函数" |销毁字符串 "=,assign" |赋以新值 "swap" |交换两个字符串的内容 "+=,append(),push_back()" |添加字符 "insert()" |插入字符 "erase()" |删除字符 "clear
阅读全文
posted @
2020-04-14 16:26
JJ_S
阅读(278)
推荐(0) 编辑
using关键字的作用
摘要:1. 通常using关键字用来声明当前文件的命名空间,比如声明标准库的命名空间std: 但是在c++11中,还有其他的用处 2.给变量定义别名 用法例如: 使用类型别名unit代替unsigned int 3.在子类中使用using声明引入基类成员名称 1. 解除因继承导致的成员保护或私有化限制,将
阅读全文
posted @
2020-04-14 16:06
JJ_S
阅读(996)
推荐(0) 编辑
C++11的default和delete关键字
摘要:1. default关键字 用法: 2. delete关键字 用法: 3. noexcept关键字
阅读全文
posted @
2020-04-14 15:56
JJ_S
阅读(2135)
推荐(0) 编辑
explicit关键字
摘要:【作用】: 【示例1】 但是, 上面的代码中的m代表的是大小, 那么调用的"Test t6 = 'c';" 就显得不伦不类, 而且容易让人疑惑。 有什么办法阻止这种用法呢? 答案就是使用explicit关键字. 我们把上面的代码修改一下, 如下: 【示例2】
阅读全文
posted @
2020-04-14 15:49
JJ_S
阅读(303)
推荐(0) 编辑
C++函数返回局部变量
摘要:[toc] 1. 不可返回的局部变量 1.1 函数不能返回指向栈内存的指针 【示例】: 2 可返回的局部变量 2.1 返回局部变量本身 【示例】: 2.2 常量 【常量】 2.3 静态局部变量 【示例】: 2.4 堆内存中的局部变量 【示例】: 2.5 返回值为值类型的函数 【示例】: 2.6 返回
阅读全文
posted @
2020-04-14 15:44
JJ_S
阅读(1535)
推荐(0) 编辑
lambda表达式
摘要:c++11中的lambda表达式是一种匿名函数(即没有函数名),同时,lambda函数是也inline(内联函数)。lambda函数的语法定义为: 每项含义: (1) [capture] :捕捉列表,不能省略。 例子 (2)(parameters):参数列表 (3)mutable/exception
阅读全文
posted @
2020-04-14 15:32
JJ_S
阅读(256)
推荐(0) 编辑
C++类里面定义一个指向自己的静态成员函数
摘要:【使用示例】 在头文件中声明一个类,定义一个指向该类本身的静态成员指针变量,实现单例模式 注意static成员一定要在类外初始化 实现代码: 单例类有以下特征: 它有一个指向该类唯一实例的静态指针,并且是私有的; 它有一个公有的函数,可以获取这个唯一的实例,并且在需要的时候创建该实例; 它的构造函数
阅读全文
posted @
2020-04-14 15:19
JJ_S
阅读(1781)
推荐(0) 编辑
sscanf用法与snprintf用法
摘要:1. sscanf用法 【作用】:从一个字符串中读进与指定格式相符的数据 【函数原型】: 注意:在读入的字符串是空字符串时,sscanf函数并不改变待读入到的变量的值。 【例子1】:将string转为int 【例子2】:将中间有逗号分隔的string转化成多个int/实数 【例子3】: 参考 htt
阅读全文
posted @
2020-04-14 15:13
JJ_S
阅读(956)
推荐(0) 编辑
extern的用法
摘要:1. extern修饰变量和函数 声明extern关键字的全局变量和函数可以使得它们能够跨文件被访问 (1)针对同一个文件中的变量 c include using namespace std; void func(); int main() { func(); extern int num; cou
阅读全文
posted @
2020-04-14 14:28
JJ_S
阅读(610)
推荐(0) 编辑
函数指针
摘要:@[toc] 前言: c 数据类型 ( 指针变量名)(参数表); c void ( p)(int a, int b); //p是一个指向函数的指针变量 void p(int a, int b); //p是函数名,此函数的返回值类型为void指针 c void fun(int a, int b) {}
阅读全文
posted @
2020-04-14 14:20
JJ_S
阅读(452)
推荐(0) 编辑
C++11 多线程- Part 1 : 创建线程的三种方式
摘要:翻译自:https://thispointer.com//c 11 multithreading part 1 three different ways to create threads/ 这篇文章主要讨论在C++11中如何利用std::thread创建线程 C++11线程库介绍 最早的C++标准
阅读全文
posted @
2020-04-14 14:03
JJ_S
阅读(949)
推荐(0) 编辑