自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

私房菜

探索是一种乐趣,总结是一种习惯,坚持就是人生!

  • 博客(354)
  • 资源 (6)
  • 论坛 (4)
  • 收藏
  • 关注

原创 Android protobuf 原理以及ProtoOutputStream、ProtoInputStream 使用(最全)

请支持原创~~0. 前言Protobuf是一种灵活高效可序列化的数据协议,相于XML,具有更快、更简单、更轻量级等特性。支持多种语言,只需定义好数据结构,利用Protobuf框架生成源代码,就可很轻松地实现数据结构的序列化和反序列化。一旦需求有变,可以更新数据结构,而不会影响已部署程序。Protobuf 是一个小型的软件框架,带着疑问会发现Proto 有很多需要了解:Proto 文件书写格式,关键字package、option、Message、enum 等含义和注意点是什么? 消息等.

2021-09-28 16:53:20 76 1

原创 Android protobuf 编码详解

请支持原创~~系列博文:Android protobuf 原理以及ProtoOutputStream、ProtoInputStream 使用(最全)Android protobuf 生成java 文件详解0. 前言上一篇 Android protobuf 原理中简单分析了proto buf 的优缺点和实现原理,以及使用。对于 *.proto 文件的详细编译、生成原理以单独的博文呈现,这一篇主要对proto buf 进行编码原理的剖析。...

2021-09-30 09:38:47 44

原创 android protobuf 在ProtoOutputStream和ProtoInputStream 中实现原理

请支持原创~~系列博文:Android protobuf 原理以及ProtoOutputStream、ProtoInputStream 使用(最全)0. 前言上一篇 Android protobuf 原理中简单分析了proto buf 的优缺点和实现原理,以及使用。对于 *.proto 文件的详细编译、生成原理以单独的博文呈现,这一篇主要分析android 中针对proto buf 实现的ProtoStream、ProtoOutputStream、ProtoInputSt..

2021-09-30 09:35:23 30

原创 Android protobuf 生成c++ 文件详解

请支持原创~~系列博文:Android protobuf 原理以及ProtoOutputStream、ProtoInputStream 使用(最全)Android protobuf 生成java 文件详解0. 前言上一篇 Android protobuf 原理中简单分析了proto buf 的优缺点和实现原理,以及使用。对于 *.proto 文件的详细编译、生成原理以单独的博文呈现,这一篇主要分析android 中proto 文件编译成java 文件的过程和应用...

2021-09-30 09:31:40 28

原创 Android protobuf 生成java 文件详解

请支持原创~~系列博文:Android protobuf 原理以及ProtoOutputStream、ProtoInputStream 使用(最全)0. 前言上一篇 Android protobuf 原理 中简单分析了proto buf 的优缺点和实现原理,以及使用。对于 *.proto 文件的详细编译、生成原理以单独的博文呈现,这一篇主要分析android 中proto 文件编译成java 文件的过程和应用...

2021-09-30 09:28:16 51

原创 Java 基础小结

1. <<、>>、>>> 运算符号 例子 解释 << num<< n 相当于num×2nnum×2n,算数左移(逻辑左移) >> num>>n 相当于num2nnum2n,算数右移 >>> num>>>n 逻辑右移,当num为正数和算术右移一个效果 ...

2021-09-22 09:32:34 14

原创 程序员的酒后真言

最近在网上看到个帖子,挺好的,记录下。Drunk Post: Things I've learned as a Sr Engineer (转自 reddit)Author:flipstablesReference:https://old.reddit.com/r/ExperiencedDevs/comments/nmodyl/drunk_post_things_ive_learned_as_a_sr_engineer/I'm drunk and I'll probab...

2021-09-20 11:20:29 22

原创 android iorap 简介

请支持原创~~0. 前言在Android 11中,引入了IORap,这是一个新功能,可大大缩短应用程序的启动时间。IORap通过预测将需要哪些I / O并提前进行来减少应用程序启动时间。许多应用程序在启动时需要访问I/O.很多时间会因为阻塞I / O而导致应用程序启动慢。预取数据之后,应用程序几乎可以从pagecache中立即访问该数据,从而大大减少了应用程序启动延迟。1. 框架1.1 系统分了6个进程system_server主要负责应用状态的监听工作,...

2021-09-17 20:06:21 120

原创 c++11 weak_ptr 源码分析

写在最前。。。0. 前言所谓智能指针,可以从字面上理解为“智能”的指针。具体来讲,智能指针和普通指针的用法是相似的,不同之处在于,智能指针可以在适当时机自动释放分配的内存。也就是说,使用智能指针可以很好地避免“忘记释放内存而导致内存泄漏”问题出现。由此可见,C++ 也逐渐开始支持垃圾回收机制了,尽管目前支持程度还有限。c++11 中发布了shared_ptr、unique_ptr、weak_ptr 用以资源的管理,都是定义在memory 这个头文件中。std::shared_ptr 允.

2021-09-17 11:34:45 54

原创 c++11 unique_ptr 与 make_unique源码剖析

写在最前。。。0. 前言所谓智能指针,可以从字面上理解为“智能”的指针。具体来讲,智能指针和普通指针的用法是相似的,不同之处在于,智能指针可以在适当时机自动释放分配的内存。也就是说,使用智能指针可以很好地避免“忘记释放内存而导致内存泄漏”问题出现。由此可见,C++ 也逐渐开始支持垃圾回收机制了,尽管目前支持程度还有限。c++11 中发布了shared_ptr、unique_ptr、weak_ptr 用以资源的管理,都是定义在memory 这个头文件中。std::shared_pt..

2021-09-17 10:52:32 72

原创 c++11 shared_ptr 与 make_shared源码剖析

写在最前。。。0. 前言所谓智能指针,可以从字面上理解为“智能”的指针。具体来讲,智能指针和普通指针的用法是相似的,不同之处在于,智能指针可以在适当时机自动释放分配的内存。也就是说,使用智能指针可以很好地避免“忘记释放内存而导致内存泄漏”问题出现。由此可见,C++ 也逐渐开始支持垃圾回收机制了,尽管目前支持程度还有限。std::shared_ptr 是一个智能指针,在c++11中发布一直至今。它通过一个pointer保留对象的共享所有权。1. 源码分析1.1 头文件#i..

2021-09-16 20:41:43 110

原创 c++11 move和forward 源码剖析

写在最前。。。0. 前言在<c++11 左值、右值、左值引用、右值引用等概念> 一文中简单介绍了c++11 后对于左值、右值、左值引用、右值引用的定义和使用。需要注意个概念,引用只是一个“别名”,c++只是为了区分是左值的引用还是右值的引用,用了两个符号区分:& 和 &&。1. 实例开路#include <iostream>using namespace std;class demo{public: demo()...

2021-09-16 16:08:44 53

原创 c++11 左值、右值、左值引用、右值引用等概念

C++左值和右值在 C++ 或者 C 语言中,一个表达式(可以是字面量、变量、对象、函数的返回值等)根据其使用场景不同,分为左值表达式和右值表达式。确切的说 C++ 中左值和右值的概念是从 C 语言继承过来的。值得一提的是,左值的英文简写为“lvalue”,右值的英文简写为“rvalue”。很多人认为它们分别是"left value"、"right value" 的缩写,其实不然。lvalue 是“loactor value”的缩写,可意为存储在内存中、有明确存储地址(可寻址)的数据,而 rval

2021-09-16 10:48:58 35

原创 c++11 lambda 原理剖析和安全使用

0. 前言Constructs aclosure: an unnamed function object capable of capturing variables in scope.lambda 源自希腊字母表中第 11 位的 λ,在计算机科学领域,它则是被用来表示一种匿名函数。所谓匿名函数,简单地理解就是没有名称的函数,又常被称为 lambda 函数或者 lambda 表达式。继 Python、Java、C#、PHP 等众多高级编程语言都支持 lambda 匿名函数后,C++11 标.

2021-09-14 15:59:04 70

原创 c++11 std::decay源码剖析

0. 前言在 《c++11 std::is_same》https://justinwei.blog.csdn.net/article/details/120268292中提到is_same 是严格的类型比对,包含了CV 属性的对比,例如 int 和const int 在is_same 中不是一个类型,返回值也是为false。但是有些时候我们想要排除CV属性进行浅层次比对,怎么办?本文的decay 可以做到!1. 头文件#include <type_traits>2. .

2021-09-13 17:13:03 108 1

原创 c++11 std::is_same 源码剖析

头文件#include <type_traits>声明//since c++11template <class T, class U> struct is_same;//since c++17template <class T, class U> inline constexpr bool is_same_v = is_same<T, U>::value; is_same 是在c++11 中发布的,在c++17 中...

2021-09-13 16:37:53 84

原创 新开分栏 ----- 前言

一直在纠结要不要新开C++11 这个分栏,很尴尬的是特性于11年发布的,中间经过了好几个修改、完善的特性版本,21的特性都快出来了,特性、语法网上都一堆了 ,感觉实在没有必要。但是,回想自己写博客的初衷:记录自己的理解,也能方便他人。本人是一个比较喜欢专研的一枚小伙,更喜欢将自己遇到的东西分享出来,知识无界限的,更何况或多或少能帮助到别人!所以,最终还是决定新开这个分栏,用以记录以C++11 特性为开篇的语法特性,特别是在后期版本中大变样的特性,将这些都以C++11 开篇,然后分离、对比出来。

2021-09-13 14:56:33 54 1

原创 Android JobService和JobScheduler 原理剖析

请支持原创~~版本基于:Android R前言最近在研究Iorap 的时候碰到了JobScheduler,这套机制是在Android L中就提出来的,而之前没有使用到也就不知其存在。简单过滤了下framework 的代码,发现虽然是一个小模块,却是五脏俱全、环环相扣。由于时间原因,本文主要结合实际情形简单分析JobScheduler 的实现过程。框架图本图来源:https://blog.csdn.net/allisonchen/article/details/792...

2021-09-03 10:46:12 75

转载 Linux内核的文件预读机制详解

为什么需要文件预读机制?算法磁盘I/O性能的发展远远滞后于CPU和内存,因而成为现代计算机系统的一个主要瓶颈。预读可以有效的减少磁盘的寻道次数和应用程序的I/O等待时间,是改进磁盘读I/O性能的重要优化手段之一。从寄存器、L1/L2高速缓存、内存、闪存,到磁盘/光盘/磁带/存储网络,计算机的各级存储器硬件组成了一个金字塔结构。越是底层存储容量越大。然而访问速度也越慢,具体表现为更小的带宽和更大的延迟。因而这很自然的便成为一个金字塔形的逐层缓存结构。由此产生了三类基本的缓存管理和优化问题: 预取

2021-08-26 17:26:32 38

原创 Android ContenProvider 机制完整剖析

请支持原创~~~相关博文:android 中的 ContentObserver (一)android 中的 ContentObserver (二)Android基础总结之八:ContentProvider基于版本:Android R0. 前言很早以前分析过service(Android 中service 详解) 和broadcast receiver(android 中的 Broadcast 机制详解) 的机制,最近在回顾的时候发现少了ContentPro...

2021-08-17 22:22:49 85 1

原创 C++17 关键字fallthrough

在C++17中引入了fallthrough属性。该属性主要用于switch语句中。在C++的switch语句中,如果当前case分支中不加break, 便会执行下一个case分支的代码。如下所示,由于n的值为1,代码首先执行case 1分支,然后又因为case 1分支中没有加break,所以接着执行case 2分支、case 3分支,一直到default分支。#include <iostream>using namespace std; int main(){ in

2021-08-13 14:56:47 117 2

原创 Android AsyncTask 详解

请支持原创~~~版本基于:Android R前言:将复杂工作异步化、线程化对于Android 的性能的提高起到了很重要的作用,Android 框架为开发提供了很多辅助程序,这一篇着重分析Android AsyncTask的原理。源码分析:1. AsyncTask 声明public abstract class AsyncTask<Params, Progress, Result> { ... }AsyncTask 是一个抽象类,一个模板类,需要三个模板参

2021-08-04 22:29:53 786 3

原创 Android input 原理分析(三) _ scanCode与keyCode映射

从《input 原理分析(二)》中得知,在scan device 会对/dev/input 下每个input device 通过openDeviceLocked 进行初始化等操作,其中针对keyboard 或joystick 设备需要进行scan code 与 keycode 映射。这一篇详细解析映射过程,后面InputReader 进行分发按键会在InputDevice 的KeyBoardMapper 中需要将scan code 转换为keycode 发送给Android 系统。0. 加载key

2021-07-23 16:49:13 209 2

原创 Android input 原理分析(二) _ EventHub

《原理分析(一)》中简单分析了IMS 的启动过程,大致如下:通过IMS的构造,创建InputManager 实例,并保存到新建的实例NativeInputManager 中。InputManager实例时分别创建InputDispatcher 和InputReader; 将IMS 的实例传入WSM 中; 将WSM 中input 相关的callback 注册到IMS,方便后面交互; 开启IMS 的启动流程,分别创建Dispatch thread 和read thread。在分析input 的分发原

2021-07-23 16:35:20 115 6

原创 windows 下.bat 文件双击无法运行

最近发现windows 中bat 文件双击的时候无法直接运行,而是弹出“打开方式”的对话框,让选择:而通过路径选择c:\Windows\System32\cmd.exe 的时候,却又弹出格式不正确的对话框。网上有很多类似的帖子,方法大致为:1. 将bat 文件的格式从UTF-8 改成ASNI2. 添加环境变量,将c:\Windows\System32 添加到环境变量path 中3. 修改注册表中.bat 相关属性,将其属性值都改成“未设置”4. 无可奈何,将bat 的后缀改成

2021-07-15 10:47:06 690

原创 论android 中list erase用法

今天同事碰到一个有关list segment 的问题,大神们可以一起讨论下。void clearBufList(){ pthread_mutex_lock(&mMutex); DataBuf *buf; List<DataBuf *>::iterator item = mBufList.begin(); for ( ; item != mBufList.end(); item++) { buf = *item; f...

2021-06-11 16:51:10 52 1

原创 TEE(Trusted Excution Environment) 简介

基于:GlobalPlatform_TEE_White_Paper_Feb2011.pdf概述:随着移动终端市场的成熟和扩大,安全问题的增长需要关注。随着终端用户在他们的智能手机中使用各种各样的lisestyle 的应用,由于使用一个开放的环境,安全需求激增。内容保护、企业环境、连接,以及在移动市场中金融交易的兴起,加重了这些安全影响,而这些不仅仅与终端用户有关。服务提供商、移动网络运营商、系统和应用开发商、设备制造商、平台提供商和硅供应商都是这个市场的相关干系方,也是寻找安全实施方案的既得..

2021-04-22 11:20:20 158

原创 linux驱动 ioctl 小结

依赖版本: linux4.14依赖头文件: sys/ioctl.h ->asm/ioctl.h ->asm-generic/ioctl.h函数原型:extern int ioctl (int __fd, unsigned long int __request, ...) __THROW;第一个参数是文件描述符 第二个参数代表传递的命令,它会原样传递给驱动 第三个参数是可选类型的,主要根据第二个参数选择,第三个参数无论是整数还是...

2021-03-03 15:08:44 288

原创 删除链表的倒数第n个节点

题目描述:给定一个链表,删除链表的倒数第n个节点并返回链表的头指针例如, 给出的链表为:1->2->3->4->5, n= 2. 删除了链表的倒数第n个节点之后,链表变为1->2->3->5.备注:题目保证n一定是有效的请给出请给出时间复杂度为O(n)的算法思路分析:时间复杂度为O(n),最优解法是链表遍历一遍,因为链表是单向的,在遍历的过程中需要找到所需要的删除的节点位置。可以使用两个指针,在移动的过程中一个负责找到最后一.

2021-02-05 17:03:27 67

原创 链表中节点每k 个一组翻转

题目:将给出的链表中的节点每\ kk个一组翻转,返回翻转后的链表如果链表中的节点数不是\ kk的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。要求空间复杂度 O(1)例如:给定的链表是1→2→3→4→5对于 k=2, 你应该返回 2→1→4→3→5对于 k=3, 你应该返回 3→2→1→4→5#include <stdio.h>#include <stdlib.h>typedef struct node{ ...

2021-02-05 15:23:24 294

原创 合并两个有序数组

给出两个有序的整数数组 A 和 B,请将数组 B 合并到数组 A 中,变成一个有序的数组注意:可以假设A 数组有足够的空间存放B 数组的元素,A 和B 中初始的元素数目分别为m 和n#include <stdio.h>void merge(int* pArrayA, int* pArrayB, int m, int n){ int index = m + n - 1; int i = m - 1; int j = n - 1; while (i

2021-02-05 15:21:30 54

原创 子数组的最大累加和问题

题目:给定一个数组arr,返回子数组的最大累加和例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.[要求]时间复杂度为O(n),空间复杂度为O(1)问题考察核心就是连续的数求和后不能负数,如果为负肯定影响后面数的和,例如,前两个数为1、-2,和为-1,与后面数3的和为2,那宁愿不要这两个数。#include <math.h>#include <stdio.h>.

2021-02-05 15:06:04 50

原创 跳台阶

1. 跳台阶题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。#include <stdio.h>// 每一次跳跃有两种选择,跳一个台阶,或跳两个台阶,不同的方式后面的跳跃就是不同的跳法// f(n) = f(n-1) + f(n-2),以此类推int jumpFloor1(int step, int n){ if (step > n) { return 0; }

2021-01-28 19:37:34 47

原创 深入了解C++引用

前言偶然看书(C++ pp)的时候看到引用一节,想到些问题:1. 引用在初始化的时候赋值的,后面可以直接使用该引用,那么该引用是一个变量吗?2. 如果是变量,那么肯定是有内存的?内存空间占用多少呢?里面存放的是变量的地址?还是变量的值?3. 如果不是变量,在编译的时候应该是一个单独的符号,后面使用该符号的时候,怎么就知道使用哪里的值?怎么绑定的呢?4. C++ pp 书中将其称为“别名”,或许如上面第3点,仅仅是变量的第二种符号?简单地研究了一番,请大神不吝赐教!~带..

2021-01-21 16:22:48 78

原创 VS 之‘fopen‘: This function or variable may be unsafe

今天在VS中测试一个fopen 的小程序时出现:1. 找到项目中该源文件,右击后选择属性2. 找到预处理器定义3. 点击后面,会出现下拉框,选择编辑,添加_CRT_SECURE_NO_WARNINGS4. 再次编译后ok附代码://测试fwrite的实际大小#include "pch.h"#include "test.h"#include <stdio.h>void test4(){ char src[10] = "12345..

2021-01-15 10:37:09 153

原创 申请博客专家

很开心能通过CSDN批准获取“博客专家”称号,值得纪念的时刻还是要记录下来。2020年12月18日(周五)递交了的申请,在2020年12月25日(周五)通过了批准。很感谢CSDN的认可,是激励也是勉励,是动力也是压力。本来当天就想更新下博客,发表一下自己激动的感言,但是因为家里事情和工作,就稍微耽误了几天。而当今天想起来更新的时候,发现自己已经不再那么激动。就像之前我说的,是动力也是压力。动力就是后面希望自己能多带来一些好的文章,获取更多的关注,帮助到更多的人;压力就是自己以后的博文发表

2020-12-29 16:17:36 88

原创 申请博客专家

今天申请博客专家,心情还是很紧张的,这么多年了,不知道自己是否满足了CSDN的要求。不过,无论如何,既然选择这条路,那么就坚持下去吧!新的项目快结束了,磨炼自己开始,多看多看多看!加油吧!附申请简介:自从13年更多的接触到CSDN,就喜欢上这个平台,上面有任何自己想要搜到的好文章。受这些文章的影响,自己也想将自己的困惑和已知的技术知识分享出来,希望能尽自己最大的努力帮助到更多人,也能进一步的勉励自己。经过多年的努力,从原来的参考别的大牛的文章,到自己静下心来深究代码、流程,并分享出来,看到.

2020-12-29 16:04:02 1223 5

原创 source insight重置工具栏

基于source insight 4.0如果不小心将工具栏弄乱了,恢复起来如果比较麻烦,就果断重置:1. 关闭source insight2.找到备份文件 C:\Users\用户名\Documents\Source Insight 4.0\Settings\config_all.xml3.打开config_all.xml。删除整个Toolbars元素(第一个出现的Toolbars元素,里面还有一个也叫Toolbars)4. 保存config_all.xml...

2020-12-17 15:25:29 961

原创 LD_DEBUG

LD_DEBUG 是 glibc 中的 loader 为了方便自身调试而设置的一个环境变量。通过设置这个环境变量,可以方便的看到 loader 的加载过程。如命令说明,可以使用环境变量LD_DEBUG_OUTPUT 将std out 换成用户指定的路径,详细命令:LD_DEBUG=libs LD_DEBUG_OUTPUT=/data/test/log /usr/bin/main最后会在/data/test 目录下生成log.PID 接口的文件,其中pid 就是程序main 运行时候的进程号

2020-12-09 16:06:25 145

转载 notepad++ 64位安装 HexEditor 二进制编辑插件

在 64 位 notepad++ 插件管理中找不到可用的 HexEditor 插件,原因是官方不支持 64 位。在如下网址下载 非官方的 64 位 HexEditor 插件:64位HexEditor下载后解压出 dll 文件,打开插件目录,建立 HexEditor 目录,将 dll 放置该目录下,重启 Notepad++ 即可。注意必须在插件目录手动建立 HexEditor 目录,否则安装失败...

2020-08-31 14:41:05 503

gcc和g++详解

1、gcc包含的c/c++编译器 gcc、cc、c++、g++ gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译 2、gcc的基本用法 gcc test.c这样将编译出一个名为a.out的程序 gcc test.c -o test这样将编译出一个名为test的程序 -o参数用来指定生成程序的名字

2017-10-25

Linux命令行与shell脚本编程大全(第三版).pdf

1.1 什么是 Linux 如果你以前从未接触过Linux,可能就不清楚为什么会有这么多不同的Linux发行版。在查看 Linux软件包时,你肯定被发行版、 LiveCD和GNU之类的术语搞晕过。初次进入Linux世界会让人 觉得不那么得心应手。在开始学习命令和脚本之前,本章将为你稍稍揭开Linux系统的神秘面纱。 首先, Linux可划分为以下四部分:  Linux内核  GNU工具  图形化桌面环境  应用软件 每一部分在Linux系统中各司其职。但就单个部分而言,其作用并不大。图1-1是一个基本结 构框图,展示了各部分是如何协作起来构成整个Linux系统的。 本节将详细介绍这四部分,然后概述它们如何通过协作构成一个完整的Linux系统。

2017-09-05

Linux Shell脚本攻略(第2版).pdf

1.1 简介 诸多类Unix操作系统的设计令人惊叹。即便是在数十年后的今天, Unix式的操作系统架构仍是有史以来的最佳设计之一。这种架构最重要的一个特性就是命令行界面或shell。 shell环境使得用户能与操作系统的核心功能进行交互。术语脚本更多涉及的便是这种环境。编写脚本通常使用某种基于解释器的编程语言。而shell脚本不过就是一些文件,我们能将一系列需要执行的命令写入其中,然后通过shell来执行。 本书使用的是Bash(Bourne Again Shell),它是目前大多数GNU/Linux系统默认的shell环境。 鉴于GNU/Linux作为基于Unix式架构最杰出操作系统的地位,书中大部分案例和讨论都假定是在Linux系统环境下进行的。

2017-09-05

Linux shell 脚本攻略(第2版).pdf

1.1 简介 诸多类Unix操作系统的设计令人惊叹。即便是在数十年后的今天, Unix式的操作系统架构仍 是有史以来的最佳设计之一。这种架构最重要的一个特性就是命令行界面或shell。 shell环境使得 用户能与操作系统的核心功能进行交互。术语脚本更多涉及的便是这种环境。编写脚本通常使用 某种基于解释器的编程语言。而shell脚本不过就是一些文件,我们能将一系列需要执行的命令写 入其中,然后通过shell来执行。 本书使用的是Bash(Bourne Again Shell),它是目前大多数GNU/Linux系统默认的shell环境。 鉴于GNU/Linux作为基于Unix式架构最杰出操作系统的地位,书中大部分案例和讨论都假定是在 Linux系统环境下进行的。 本章的主要目的是让读者了解shell环境并熟悉shell的基本特性。命令都是在shell终端中输入 并执行。打开终端后,就会出现一个提示符。其形式通常如下:

2017-09-05

Makefile.pdf

什么是 makefile?或许很多 Winodws 的程序员都不知道这个东西,因为那些 Windows 的 IDE 都 为你做了这个工作,但我觉得要作一个好的和 professional 的程序员,makefile 还是要懂 。这就好象现在有这么多的 HTML 的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML 的标识的含义。特别在 Unix 下的软件编译,你就不能不自己写 makefile 了,会不会写 makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。 因为,makefile 关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、 功能、模块分别放在若干个目录中,makefile 定义了一系列的规则来指定,哪些文件需要 先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作, 因为 makefile 就像一个 Shell 脚本一样,其中也可以执行操作系统的命令。

2017-09-05

mxml 提炼公共接口

使用mxml 库指定一个标准的接口,使用putInt、getInt、putString、getString、putStringArray、getStringArray等。mxml的详解可以参考https://blog.csdn.net/shift_wwx/article/details/99677421

2019-08-16

私房菜的留言板

发表于 2020-01-02 最后回复 2020-01-02

Android 9.0 sdcard无法写入

发表于 2019-01-09 最后回复 2019-11-26

Sqlite3 代码中如何停止搜索,停止后之前搜索的数据是否能返回?

发表于 2019-06-27 最后回复 2019-06-27

android 中 DES 解密出现javax.crypto.BadPaddingException: pad block corrupted

发表于 2018-11-12 最后回复 2019-05-20

空空如也

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

TA关注的人 TA的粉丝

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