我们曾经在一篇文章中为大家详细介绍过Android文件系统的一些基本概念,相信大家已经可以充分了解这一知识点了。在这里大家将会继续对Android根文件系统的基本概念进行一个初步的掌握。
经过这几天在网上搜索关于Android根文件系统的相关资料,发现已经有很多高手 分析了Android的文件系统,这些高手多从不同的方面分析了其文件系统的结构和运行原理。我这里就写一下自己的理解。
...我们曾经在一篇文章中为大家详细介绍过Android文件系统的一些基本概念,相信大家已经可以充分了解这一知识点了。在这里大家将会继续对Android根文件系统的基本概念进行一个初步的掌握。
经过这几天在网上搜索关于Android根文件系统的相关资料,发现已经有很多高手 分析了Android的文件系统,这些高手多从不同的方面分析了其文件系统的结构和运行原理。我这里就写一下自己的理解。
...1.Drawable的使用
最经常会处理Drawable作为类型的资源回收绘制到屏幕上的东西; Drawable类提供了一个通用的API来处理一个基本的视觉资源,可以采取多种形式。(讲的有点抽象)讲白点就是获取res下的参数
例:改变TextView文字颜色-引用Drawable颜色常熟及背景色
values下的color.xml
Xml代码
...
- < ?xml version="1.0" encoding="utf-8" ?>
- < resources>
- < drawable name="darkgray">#808080FF< /drawable>
- < drawable name="white">#FFFFFFFF< /drawable>
- < /resources>
- < ?xml version="1.0" encoding="utf-8" ?>
- < resources>
- < drawable name="darkgray">#808080FF< /drawable>
- < drawable name="white">#FFFFFFFF< /drawable>
- < /resources>
Android操作系统中内置了SQLite数据库!我们在应用程序开发中都需要对数据库进行相关操作。在这里大家就一起来看看有关Android SQLite数据库的应用技巧,方便将来的应用。
SQLite本身就是一个很小型的数据库!
数据库存储的位置在data/data/<项目文件夹>/databases/
...Android创建sdcard步骤一、cmd进入tools目录输入mksdcard -l mycard 100M F:\mysdcard.img
1. mycard命令可以使用三种尺寸:字节、K和M。如果只使用数字,表示字节。后面还可以跟K,如262144K,也表示256M。
2. mycard建立的虚拟文件最小为8M,也就是说,模拟器只支持大于8M的虚拟文件。
3. -l命令行参数表示虚拟磁盘的卷标,可以没有该参数。
...昨天进行了GUI界面设计,感受了一下android初次设计的愉悦,今天接着学习其SQLite数据库试用,将昨天的例子中数据存到数库中,并读取查看一下。 具体看代码(原写的有点问题,再改写如下):
1) Android数据库之库操作类:
...
- package com.topsun;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.util.Log;
- public class DBHelper {
- private static final String TAG = "UserDB_DBHelper.java";
- private static final String DataBaseName = "UserDB";
- SQLiteDatabase db;
- Context context;
- public DBHelper(Context context) {
- this.open(context);
- }
- private void createTabel() {
- // TODO Auto-generated method stub
- String sql = "";
- try {
- sql = "CREATE TABLE IF NOT EXISTS TestUser (ID INTEGER
PRIMARY KEY autoincrement, NAME TEXT, SEX TEXT, AGES INTEGER)";- this.db.execSQL(sql);
- Log.v(TAG, "Create Table TestUser ok");
- } catch (Exception e) {
- Log.v(TAG, "Create Table TestUser fail");
- } finally {
- //this.db.close();
- Log.v(TAG, "Create Table TestUser ");
- }
- }
- public boolean save(String name, String sex, Integer ages) {
- String sql = "insert into TestUser values
(null,'" + name + "','" + sex- + "'," + ages + ")";
- try {
- this.db.execSQL(sql);
- Log.v(TAG, "insert Table TestUser 1 record ok");
- return true;
- } catch (Exception e) {
- Log.v(TAG, "insert Table TestUser 1 record fail");
- return false;
- } finally {
- //this.db.close();
- Log.v(TAG, "insert Table TestUser ");
- }
- }
- public Cursor loadAll() {
- Cursor cur = db.query("TestUser", new String[]
{ "ID", "NAME","SEX","AGES"}, null,- null, null, null, null);
- return cur;
- }
- public void open(Context context){
- if (null == db || !this.db.isOpen()){
- this.context = context;
- this.db = context.openOrCreateDatabase(this.DataBaseName,
- context.MODE_PRIVATE, null);
- createTabel();
- Log.v(this.TAG, "create or Open DataBase。。。");
- }
- }
- public void close() {
- db.close();
- }
- }
- package com.topsun;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.util.Log;
- public class DBHelper {
- private static final String TAG = "UserDB_DBHelper.java";
- private static final String DataBaseName = "UserDB";
- SQLiteDatabase db;
- Context context;
- public DBHelper(Context context) {
- this.open(context);
- }
- private void createTabel() {
- // TODO Auto-generated method stub
- String sql = "";
- try {
- sql = "CREATE TABLE IF NOT EXISTS TestUser
(ID INTEGER PRIMARY KEY autoincrement,
NAME TEXT, SEX TEXT, AGES INTEGER)";- this.db.execSQL(sql);
- Log.v(TAG, "Create Table TestUser ok");
- } catch (Exception e) {
- Log.v(TAG, "Create Table TestUser fail");
- } finally {
- //this.db.close();
- Log.v(TAG, "Create Table TestUser ");
- }
- }
- public boolean save(String name, String sex, Integer ages) {
- String sql = "insert into TestUser values
(null,'" + name + "','" + sex- + "'," + ages + ")";
- try {
- this.db.execSQL(sql);
- Log.v(TAG, "insert Table TestUser 1 record ok");
- return true;
- } catch (Exception e) {
- Log.v(TAG, "insert Table TestUser 1 record fail");
- return false;
- } finally {
- //this.db.close();
- Log.v(TAG, "insert Table TestUser ");
- }
- }
- public Cursor loadAll() {
- Cursor cur = db.query("TestUser", new String[]
{ "ID", "NAME","SEX","AGES"}, null,- null, null, null, null);
- return cur;
- }
- public void open(Context context){
- if (null == db || !this.db.isOpen()){
- this.context = context;
- this.db = context.openOrCreateDatabase(this.DataBaseName,
- context.MODE_PRIVATE, null);
- createTabel();
- Log.v(this.TAG, "create or Open DataBase。。。");
- }
- }
- public void close() {
- db.close();
- }
- }
熟悉Android操作系统的朋友都知道,开发Android应用程序基本上使用的都是Java语言。那么要想灵活的应用这一系统,就应当熟悉其中的Android Java包的各种功能。一般的JAVA应用中,如果需用引用基础类库,通常需要使用如下的方式:
...
- import javax.swing.*;
熟悉Android操作系统的朋友都知道,开发Android应用程序基本上使用的都是Java语言。那么要想灵活的应用这一系统,就应当熟悉其中的Android Java包的各种功能。一般的JAVA应用中,如果需用引用基础类库,通常需要使用如下的方式:
...
- import javax.swing.*;
Android开发平台是开放的平台,而位于四层框架顶端的应用开发,必然涉及到Android组件。本文将为大家详细介绍Android组件。
组件(Component),在谈及所谓架构和重用的时候,是一个重要的事情。很多时候都会说基于组件的软件架构,指的是期望把程序做乐高似的,有一堆接口标准封装完整的组件放在哪里,想用的时候取上几个一搭配,整个程序就构建完成了。
...在Android类库中,各种包写成android.*的方式,重要包的描述如下所示:
android.app :提供高层的程序模型、提供基本的运行环境
android.content 包含各种的对设备上的数据进行访问和发布的类
android.database :通过内容提供者浏览和操作数据库
android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
android.location :定位和相关服务的类
...Android手机操作系统中有一种叫做Intent的消息传递机制。这在实际编程中是一个核心技术,值得我们去深入的研究。在这里大家将会了解到有关Android消息传递的一些基础应用技巧,帮助大家理解。
每一个Cursor、ContentResolver做为一个小的注册中心,相关观察者可以在这个中心注册,更新消息由注册中心分发给各个观察者。而在MFC或Winform中,都会形成一个消息网,让消息在网中流动,被各节点使用、吃掉或者在出口死掉。
...