Android资源使用
在Android项目中,资源文件分别放在res和assets两个文件夹中
res目录存放Android程序能通过R资源类直接访问的资源;
assets目录存放Android程序不能直接访问的资源(原生文件),如MP3文件,必须通过AssetManager类以二进制流的形式读取。
访问字符串资源:R.string.XXX 或 @string/XXX
访问图片资源:R.drawable.XXX 或 @drawable/XXX
Activity详解
Activity概述 一个应用程序通常由多个彼此之间松耦合的Activity组成。通常,有一个Activity被指定为主Activity。当应用程序第一次启动的时候,该Activity会显示给用户。
每个Activity都可以启动其他Activity用于执行不同的动作(功能)。当一个新的Activity启动的时候,先前的那个Activity就会停止,但是系统会在堆栈中保存该Activity。
堆栈遵循后进先出的队列原则,因此,当用户使用完当前的Activity并按Back键时,该Activity将从堆栈中取出(并销毁,释放内存空间),然后先前的Activity恢复并获取焦点。
创建和配置Activity 条件:
需要继承Activity基类或其子类
创建Activity需要实现一个或多个方法;
其中最常见的就是**onCreate(Bundle status)**方法,该方法将会在Activity创建时被回调,并可调用setContentView(View view)方法来显示要展示的View。
//Main ...
Android程序设计基础
Android程序结构项目目录结构
src目录
source的简写,存放源文件的目录,即写有代码的以java为后缀的文件。
res目录
存放项目中的资源文件并将编译进应用程序中,包括图片、字符串、菜单、界面布局、样式等等。在向此目录添加的资源文件,都会被gen/R.java自动记录。
gen目录
取自Generated Java Files的前3个英文单词,存放ADT自动生成的java文件,例如R.java和BuildConfig.java文件。这个目录中的文件不建议作任何的改动,否则会出错,或ADT会再次自动生成。
bin目录
该目录存放编译器编译之后产生的所有文件。包括dex文件(java编译后生成的java字节码文件)、resources.ap_(所有资源文件的集合,实际上是zip格式)、dexedLibs(对应libs中引用的jar包)和可执行apk文件等等。一个apk文件内包含被编译的代码文件(.dex文件)、文件资源(res)、assets、证书(certificates)和清单文件(manifest file),它基于zip文件格式。
assets目录
该目录 ...
Android入门
Android入门 Android是基于Linux平台的开源手机操作系统,由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。(这就是为什么我在我的说说页面上,用手机发动态,上面显示的Linux)
Android体系结构
应用程序层
Android内有一系列的核心应用,包括短信程序、日历工具、网页浏览器等工具,以及基于Android平台的应用程序框架,所有的应用都是Java语言编写的。
应用程序框架层
开发者可以完全使用与那些内核应用程序相同的框架,这些框架用于简化和重用应用程序的组件。若某程序能够“暴露”其内容,则其他程序就可以使用这些内容。例如Android的四大组件:Activity、Service、ContentProvider、BroadcastReceiver。
系统库层
Android定义了一套C/C++开发库供Android平台的其他组件使用。这些功能通过Android应用程序框架提供给开发者,开发者是不能直接使用这些库的。
运行时环境
Linux内核层
Android的核心系统服务依赖于Linux2. ...
二叉排序树
二叉排序树二叉排序树(BST)定义 二叉排序树又称二叉查找树。二叉排序树或是一棵空树,或是一棵具有下列特性的非空二叉树:
1)若左子树非空,则左子树上所有结点关键字值均小于根结点的关键字值。
2)若右子树非空,则右子树上所有结点关键字值均大于根结点的关键字值。
3)左、右子树本身也分别是一棵二叉排序树
左子树结点值 < 根结点值 < 右子树结点值,对二叉排序树进行中序遍历,可以得到一个递增的有序序列。
查找 二叉排序树的查找是从根结点开始,沿某个分支逐层向下进行比较的过程。若二叉树非空,则将给定值与根结点的关键字比较;若相等,则查找成功;若不等,则当前结点的关键字值大于给定关键字值时,在根节点的左子树查找,否则在根节点的右子树中查找。这是一个递归的过程。
二叉排序树的递归查找算法:
BSTNode* BST_Search(BitTree T, ElemType key){ ...
队列(Queue)
队列(Queue)队列的基本概念定义 队列(Queue)。队列简称队。是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进队;删除元素称为出队或离队。其操作特性为先进后出(First In Last Out,FIFO),并且只允许在队尾进,队头出。
队头(Front):允许删除的一端,又称队首
队尾(Rear):允许插入的一端
空队列:不包含任何元素的空表
队列的基本操作 1)InitQueue(&Q):初始化队列,构造一个空队列Q
2)QueueEmpty(Q):判断一个队列是否为空
3)EnQueue(&Q,x):入队,若队列未满,则将x加入使之成为新队尾
4)DeQueue(&Q,&x):出队,若队列非空,则将队首元素删除,并用x返回
5)GetHead(Q,&x):读队头元素 ...
单链表
单链表 由于顺序表的插入、删除操作需要移动大量的元素,影响运行效率,由此引进了线性表的链式存储。链式存储线性表时,不需要使用地址连续的存储单元,对线性表的插入删除不需要移动元素,而只需要修改指针。
单链表定义 每个链表结点,除了存放元素自身的信息外,还需要存放一个指向后继的指针。
typedef struct LNode{ ElemType data; struct LNode* next;}LNode, *LinkList; //LNode,LinkList 其实是一样的,只是表示结点和链表更方便
初始化 不带头结点的单链表bool InitLinklist(LinkList& L){ L = nullptr; return true;}
带头结点的单链表bool InitLinkList(LinkList& L){ L = (Lnode*)malloc(sizeof(LNode)); //生成一个头结点 i ...
财富自由之路
1、考虑自己的事业1. 填制个人财务报表
2. 设定财务目标:
在未来的12个月内:
i. 我想减少我的债务 元
ii. 我想增加我名下资产的现金流或者增加被动收入 元/月
我的5年目标是:
i. 增加我资产得到现金流到 元/月
ii. 在我的资产项目中拥有下列投资(如房地产、股票、企业、等等)
用5年目标改变你今天开始的5年内的损益表和资产负债表
2、控制你的现金流1. 先支付自己
从你的每份工资中或每份其他来源的收入中拿出一个固定份额,把这笔钱存入投资储蓄账户。一旦你的钱存入这个账户,就永远不要取出它,直到你准备用它投资为止。
2. 集中精力减少你的个人债务
3、了解风险与冒险的区别 什么才是正确的现金流管理?
正确的现金流管理基于对资产和负债之间区别的认识,而不是你的银行经理告诉你的定义
1. 用自己的话来定义风险
拥有每月产生现 ...
Win32基础
什么是窗口? 窗口很重要,windows操作系统与用户的交互其实主要靠这个窗口。通常的我们认为,就是我们打开windows应用程序时,弹出来的窗口,如下:
这种类型的窗口称为 应用程序窗口 或 主窗口。它通常具有带有标题栏,“最小化和最大化”按钮以及其他标准UI元素的框架。该框架称为窗口的非客户区,之所以这样称呼,是因为操作系统管理窗口的该部分。框架内的区域是客户区域。这是程序管理的窗口的一部分。
但你可能想不到, 这也是一种窗口,没错。UI控件和应用程序窗口之间的主要区别在于,控件本身并不存在。而是,控件相对于应用程序窗口放置。当您拖动应用程序窗口时,控件将随其移动。同样,控件和应用程序窗口可以相互通信。
当您考虑窗口时,不要简单地考虑应用程序窗口。取而代之的是,将窗口视为一种编程构造,它可以:
占据屏幕的特定部分。
在给定的时刻可能可见或不可见。
知道如何绘制自己。
响应来自用户或操作系统的事件。
Parent窗口和Owner窗口 对于UI控件,控件窗口被称为应用程序窗口的子级。应用 ...