- 博客(26)
- 资源 (2)
- 问答 (4)
- 收藏
- 关注
原创 LiveData使用与源码分析
LiveData初涉LiveData是一个抽象类,可以持有被观察的数据,通常使用MutableLiveData,当LiveData被改变时,会回调onChange方法。1.LiveData的使用通常LiveData和ViewModel一起使用,ViewModel的生命周期贯穿整个Activity的生命周期,方便进行生命周期的管理。在ViewModel中首先创建出需要的LiveData的实例。public class MyViewModel extends ViewModel..
2021-05-31 18:27:54 144
原创 Java多线程(2)——线程池
Java多线程(2)——线程池程序在启动新线程和销毁线程时会消耗一定的时间,当开启大量线程来处理很短的业务时,启动和销毁线程所带来的时间的负面影响是不能接受的,而这就是线程池能够解决的,通俗来讲,线程池就是将线程复用,用以减少线程开启和销毁所带来的时间消耗。一、基本原理线程池的实现跟生产者消费者模式一样,其将任务与处理线程分开。当将任务提交到线程池时,线程池会以一个队列来维护任务,之后线程从任务队列中取出任务进行处理。线程池有几个核心的参数1)corePoolSize:核心线程数量.
2021-04-14 03:26:27 232
原创 Java多线程(1)——锁简介
Java多线程(1)——锁简介一、如何使用多线程1)实现Runnable接口2)使用Thread。其实Thread和Runnable相通,Thread实现了Runnable接口。Runnable中需要实现run()方法,如果单独只调用run(),其实只是单线程同步调用,真正开启新线程的是Thread中的start()方法。二、锁的简单介绍由于多个线程并行执行同一段代码,或者使用同一个变量,读写时可能会让数值出现预期之外的结果,于是便有了锁这个机制。(1)乐观锁与悲观锁..
2021-04-14 02:54:25 212
原创 App启动流程
1)点击桌面app图标,Launcher(桌面)和system server进程利用Binder进行通信,由system server来进行app启动。2)system server通过socket方式和Zygote进程通信,告知Zygote我要启动进程。3)Zygote利用fork()创建App的进程,执行ActivityThread的main()方法,同时初始化出ApplicationThread用以和AMS进行进程通信。ApplicationThread是个Binder4)App进程会利用
2021-04-03 01:29:21 337
原创 Android——Binder初涉
Android——Binder初涉Binder是Android系统进行跨进程通信(IPC)的一种方式,其涉及到Client,Server,Service Manager以及Binder Driver。特点1)和传统IPC方式相比,Binder只需要进行一次内存拷贝,性能较好2)基于C/S架构,S可以对C的身份进行校验,有一定安全性3)Binder Driver处于内核之中,用以负责进程之间通讯。Binder基本原理1)内存拷贝传统IPC需要进行2次内存拷贝,一是由..
2021-04-02 17:32:17 111
原创 AMS相关(一)——AMS与进程管理
AMS相关(一)——AMS与进程管理AMS即Activity Manager Service,是Android系统的核心服务,负责四大组件的启动、切换、调度,应用进程的管理调度。Android系统中所有的应用进程都由AMS管理。最直接展示给用户的,就是手机的屏幕。 当长按Home键(展示当前所有程序)时,看到的其实就相当于Task,即一个或多个Activity的集合。Activity的ActivityRecord会被存放于Task中,而一个或多个Task,则组成了一个完整的BackStack。B
2021-04-01 01:39:36 738
转载 PV操作
int Semaphore_Acquire(int semID){ struct Kernel_Thread *current=g_currentThread; struct Semaphore *s; int i; s=Get_Front_Of_Semaphore_List(&s_SemaphoreList); while(s!=0) { if(s->semaphoreID
2017-12-16 10:26:30 1892
转载 接收并解析ICMP报文
// paeseICMP.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "paeseICMP.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = _
2017-11-26 11:16:57 3128 1
原创 ELF头解析
int Parse_ELF_Executable(char *exeFileData, ulong_t exeFileLength, struct Exe_Format *exeFormat){// TODO("Parse an ELF executable image"); int i = 0; Print("elf file length: %d \n",
2017-11-25 11:03:56 581
原创 tcp视频传输-客户端
#include#include#include#include//#include#define DATA_BUFFER 512 //发送缓存大小using namespace std;int main(){ WSADATA wsaData; SOCKET sClient; int i=0; //发送的数据长度 int isndLen; /
2017-11-23 17:05:32 708
转载 接收ARP包
#include#include#include#include"pcap.h"#include#pragma comment(lib,"ws2_32.lib")#pragma comment(lib,"wpcap.lib")//定义ARP包结构struct arppkt{ unsigned short hdtyp; unsigned short protyp; unsig
2017-11-19 19:20:10 718
转载 发送ARP
#include#include"pcap.h"#pragma comment(lib,"wpcap.lib")#pragma comment(lib,"ws2_32.lib")using namespace std;//物理帧头结构typedef struct PhyFrame{ unsigned char DstMAC[6]; unsigned char SrcMAC[6]
2017-11-19 16:56:53 465
转载 发送IP分组
RAW-SCOKET发送IP分组#include "Winsock2.h"#include "stdio.h"#include "Ws2tcpip.h" #pragma comment(lib,"ws2_32.lib") typedef struct //定义IP报头{ unsigned short ip_verlen; //4位首部长度+4位版本号 unsi
2017-11-18 23:02:46 703
原创 JDBC连接数据库
package jdbctest1;//import java.io .BufferedInputStream;import java.io .BufferedReader;import java.io .IOException;import java.io .InputStreamReader;import java.sql.*;//import java.lang.
2017-11-04 15:24:18 156
原创 ODBC 初涉及
#include#include#include#include#include#include#include#includeusing namespace std;int main() { // 定义句柄和变量 SQLHENV hEnv; SQLHDBC hConnect; SQLHSTMT hStmt; SQLRETURN r; string SQL;
2017-11-03 19:14:52 224
转载 解析IP分组
#include#include#include#pragma comment(lib,"ws2_32.lib")//定义IP头部结构typedef struct _IP_HEADER{ union { BYTE Version; //版本(前4位) BYTE HdrLen; //IP头部长度(后4位) }; BYTE ServiceType; //服务类型
2017-11-01 22:15:30 1857 1
原创 单线程,多线程,线程池方法大文件指定单词数量统计
import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Exec
2017-10-19 20:17:43 1431
原创 32位校验和
#include#include#includeusing namespace std;ifstream in;int cheak_parity;int sum = 0;int num = 0;int main() { string name; char h_byte,l_byte; int count = 0; int a, b; cin >> name; i
2017-09-26 15:10:13 1183
原创 emplace与insert
c++中容器定义了很多操作。其中有6种操作: emplace_front,emplace,emplace_back; push_front,insert,push_back 都可以向容器中添加元素,但是其中又有很大的区别。下面有一程序:#include<iostream>#include<vector>#include<string>using namespace std;class
2016-12-19 15:48:48 2947
原创 c++容器下标赋值报错
c++ 容器下像这样进行下标赋值会报错#include<iostream>#include<vector>using namespace std;int main(){ vector<int> q; q[0] = 0; for (auto b : q) { cout << b << endl; } getchar();}原因是因为
2016-12-18 13:55:20 549
原创 hdoj 2035人见人爱A^B 解题报告
Problem Description求A^B的最后三位数表示的整数。说明:A^B的含义是“A的B次方” Input输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1Output对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。Sample Input2 312 66789 100000 0
2016-05-23 21:26:04 382
原创 hdoj 2032杨辉三角 解题报告
Problem Description还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 Input输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1 Output对应于每一个输入,请输出相应层数的杨辉三角,每一层的
2016-05-23 21:21:54 327
原创 hdoj 2034人见人爱A-B 解题报告
Problem Description参加过上个月月赛的同学一定还记得其中的一个最简单的题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下)呵呵,很简单吧? Input每组输入数据占1行,每行数据的开始是2个整数n(0
2016-05-23 20:13:45 1008 1
原创 hdoj 2033人见人爱A+B 解题报告
Problem DescriptionHDOJ上面已经有10来道A+B的题目了,相信这些题目曾经是大家的最爱,希望今天的这个A+B能给大家带来好运,也希望这个题目能唤起大家对ACM曾经的热爱。这个题目的A和B不是简单的整数,而是两个时间,A和B 都是由3个整数组成,分别表示时分秒,比如,假设A为34 45 56,就表示A所表示的时间是34小时 45分钟 56秒。
2016-05-23 19:36:37 837
原创 hdoj 2031进制转换 解题报告
Problem Description输入一个十进制数N,将它转换成R进制数输出。 Input输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(210)。 Output为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。 Sample I
2016-05-23 18:35:41 320
求教Android中RecyclerView中的ViewHolder的一些问题
2017-07-18
求教Android中RecyclerView的ViewHolder的一些问题
2017-07-18
求教Android中Activity.this和Activity的问题
2017-07-18
求教这个c++程序哪里有错
2017-03-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人