自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 tcp视频传输-服务端

1

2017-11-23 17:05:07 1782

转载 接收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

Geekos project4 (已实现)

Geekos project4 (已实现) linux下直接bochs运行即可。。。。。。。。

2017-12-16

Geekos Project3代码(已实现)

Geekos Project3 代码,已实现。linux下直接bochs运行即可。

2017-12-09

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除