Rust基础语法
一、基础语法 1、变量和常量 rust为强类型语言,但具有自动判断类型的能力,所以可以不用指定类型 关键词let用于声明变量,如let a =123;或let mut a = 123; 由于rust是强类型语言,所以下面代码是不合法的 let a=123; a=123 //不能把字符串赋值给整型变量 关键字coast用于声明常量,其用法和let相同…
822
|
|
|
|
1378 字
|
10 分钟
AOSP的编译
前言 推荐使用海外服务器进行编译,节约时间,节约生命! 并且,官方推荐使用Ubuntu LTS进行编译,算上输出物需要500+G的空间。 官方文档见下载源代码 | Android 开源项目 | Android Open Source Project和 Building Android | Android Open Source Project 本文…
1,137
|
|
|
|
2042 字
|
13 分钟
安卓的Socket通信
一、基于TPC的Socket通信服务端 1、使用ServerSocket实例化一个服务端Socket对象,参数为监听的端口号 2、调用ServerSocket.accept方法监听客户端的请求 该方法会在收到客户端请求前一直阻塞,直到收到了客户端消息,并且该方法的返回值是一个Socket对象 3、实例化一个InputStream对象用于接收来自客户…
584
|
|
|
|
679 字
|
3 分钟
内存管理
一、内存初始化 1、内存的初始化一般由BIOS或boot loader完成,由bios或boot loader将内存的大小传递给linux内核 2、在arm设备中,设备由DTS(Device Tree Source)描述,安卓中也是如此 3、在内核启动过程中,需要解析dts文件,其中使用early_init_dt_scan_memory()函数来解…
569
|
|
|
|
1621 字
|
7 分钟
内存寻址
一、内存地址 逻辑地址:段地址+偏移量 虚拟地址(VA):32位无符号整数,可表示4G内存控件,例如0x00000000 物理地址:芯片级内存单元寻址,直接映射在硬件上的地址 逻辑地址和虚拟地址的区别:进程所使用的虚拟内存中的地址是虚拟地址,而逻辑地址需要包换段偏移。例如0x12345678为虚拟地址,[所对应的段地址:0x12345678]为虚拟…
597
|
|
|
|
2214 字
|
9 分钟