`
growinglin
  • 浏览: 9113 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
3g是什么:3G,全称为3rd Generation,中文含义就是指第三代数字通信。

所谓3G,是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统。 3G只是一种通信技术标准,符合这个标准的技术有WCDMA、CDMA2000、TD-SCDMA三种制式。中国联通使用的是WCDMA(世界上大部分3G网络都采用的是该标准) ;中国电信使用的是CDMA2000 (日、韩和北美使用);中国移动使用的是具有自主知识产权的TD-SCDMA(只有中国才使用)  。相对第一代模拟制式手机(1G)和第二代GSM、CDMA等数字手机(2G),3G网络能处理图像、音乐、视频等多种媒体形式,提供包括网页浏览、电话会议、电子商务等多种信息服务。第三代与前两代的主要区别是在传输声音和数据的速度上有很大的提升。

     

       Android是什么:Android一词的本义指“机器人”,Android是Google于07年11月5日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成。在国内,联想、戴尔、多普达、飞利浦、中兴、三星、摩托罗拉、等厂商已经推出基于Android平台的智能手机。在3G应用开发领域,Android的发展前景不容小视,也将会成为未来主流的手机操作系统。



       Android应用程序架构:

src/  java原代码存放目录

gen/ 自动生成目录

gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。 这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的xml界面文件、图标与常量,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了界面、图标、常量等各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。

res/ 资源(Resource)目录

在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。

AndroidManifest.xml 功能清单文件

这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。

default.properties 项目环境信息,一般是不需要修改此文件



       开发Helloworld前奏:

       安装 Android SDK 和Eclipse 插件

所需开发环境:

JDK 5 或 JDK 6 (仅有JRE不够)

Eclipse 3.5 (galileo)

下载ADT 的Eclipse 插件

http://dl.google.com/android/ADT-0.9.5.zip

安装 Eclipse 插件 (ADT)

启动 Eclipse,选择 Help > Install New Software,在出现的对话框里,点击Add按钮,在对话框的name一栏输入“ADT”, 然后点击Archive...,浏览和选择已经下载的ADT插件压缩文件。

点击 OK.。返回可用软件的视图,你会看到这个插件,然后选择Developer Tools (会选中下面的“Android Developer Tools”和 “Android Editors“),点击 Next,最后重启 Eclipse。

下载Android SDK:

http://dl.google.com/android/android-sdk_r04-windows.zip

下载完SDK后,把.zip文件解压到你电脑上合适位置。启动 Eclipse,选择window->preferences,在打开的视图左边点击android,在右边的SDK Location中选择Android SDK所在位置。

这样基本上安装完成了。



文件的读取、以及对xml文件的解析:



使用文件进行数据存储:

Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。

public class FileActivity extends Activity {

    @Override public void onCreate(Bundle savedInstanceState) {

        ...

         FileOutputStream outStream = this.openFileOutput("itcast.txt", Context.MODE_PRIVATE);

         outStream.write("传智播客".getBytes());

         outStream.close(); 

    }

}

openFileOutput()方法的第一参数用于指定文件名称,不能包含路径分隔符“/” ,如果文件不存在,Android 会自动创建它。创建的文件保存在/data/data/<package name>/files目录,如: /data/data/cn.itcast.action/files/itcast.txt ,通过点击Eclipse菜单“Window”-“Show View”-“Other”,在对话窗口中展开android文件夹,选择下面的File Explorer视图,然后在File Explorer视图中展开/data/data/<package name>/files目录就可以看到该文件。

openFileOutput()方法的第二参数用于指定操作模式,有四种模式,分别为: Context.MODE_PRIVATE    =  0

Context.MODE_APPEND    =  32768

Context.MODE_WORLD_READABLE =  1

Context.MODE_WORLD_WRITEABLE =  2



Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND

Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。

Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。

MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。

如果希望文件被其他应用读和写,可以传入:

openFileOutput("itcast.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);



android有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给他一个userid,当该应用要去访问其他资源比如文件的时候,就需要userid匹配。默认情况下,任何应用创建的文件,sharedpreferences,数据库都应该是私有的(位于/data/data/<package name>/files),其他程序无法访问。除非在创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE ,只有这样其他程序才能正确访问。



把文件存放在SDCard:

使用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放些小文件还行,如果要存放像视频这样的大文件,是不可行的。对于像视频这样的大文件,我们可以把它存放在SDCard。 SDCard是干什么的?你可以把它看作是移动硬盘或U盘。



在模拟器中使用SDCard,你需要先创建一张SDCard卡(当然不是真的SDCard,只是镜像文件)。创建SDCard可以在Eclipse创建模拟器时随同创建,也可以使用DOS命令进行创建,如下:

在Dos窗口中进入android SDK安装路径的tools目录,输入以下命令创建一张容量为2G的SDCard,文件后缀可以随便取,建议使用.img:

mksdcard 2048M D:\AndroidTool\sdcard.img



在程序中访问SDCard,你需要申请访问SDCard的权限。

在AndroidManifest.xml中加入访问SDCard的权限如下:

<!-- 在SDCard中创建与删除文件权限 -->

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<!-- 往SDCard写入数据权限 -->

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>



使用SAX或者DOM或者pull解析XML文件:

SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。 SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML语法中的某部分,如果符合就会触发事件。

DOM解析XML文件时,会将XML文件的所有内容读取到内存中,然后允许您使用DOM API遍历XML树、检索所需的数据。使用DOM操作XML的代码看起来比较直观,并且,在某些方面比基于SAX的实现更加简单。但是,因为DOM需要将XML文件的所有内容读取到内存中,所以内存的消耗比较大,特别对于运行Android的移动设备来说,因为设备的资源比较宝贵,所以建议还是采用SAX来解析XML文件,当然,如果XML文件的内容比较小采用DOM是可行的。

Pull解析器的运行方式与 SAX 解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。事件将作为数值代码被发送,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型元素的值。
分享到:
评论

相关推荐

    android-ndk-r7

    Android NDK(Native Development Kit)是Google为Android平台提供的一款用于开发原生代码的应用程序工具。NDK允许开发者使用C和C++编写部分应用程序,从而利用底层硬件性能,提高应用的运行效率,尤其是在处理图形...

    Android串口通信(Android Studio)

    在Android开发中,串口通信(Serial Port Communication)是一种重要的技术,它允许设备之间通过串行接口进行数据交换。在Android Studio环境下实现串口通信,开发者可以构建与硬件设备交互的应用,例如读取传感器...

    android抽屉菜单 android panel

    android:title="选项1" /&gt; android:id="@+id/nav_item_2" android:title="选项2" /&gt; &lt;!-- 更多选项... --&gt; ``` 接下来,在Activity中初始化`DrawerLayout`和`NavigationView`,并监听点击事件: ```java ...

    Android扫雷游戏(基于Android Studio)

    1. **Android Studio入门**:首先,你需要了解Android Studio的基本操作,包括创建新项目、项目结构、布局设计、代码编写以及调试工具的使用。Android Studio提供了一个基于Gradle的构建系统,你需要理解Gradle脚本...

    Android.bp文件说明.pdf

    Android新编译规则Android.bp文件语法规则详细介绍,条件编译的配置案例。 Android.bp 文件首先是 Android 系统的一种编译配置文件,是用来代替原来的 Android.mk 文件的。在 Android7.0 以前,Android 都是使用 ...

    JS调用Android方法,向Android方法传递json数据

    var data = {"key1": "value1", "key2": "value2"}; window.androidBridge.handleJsonData(JSON.stringify(data)); ``` 这里的`JSON.stringify()`函数用于将JavaScript对象转换为JSON字符串,因为Android方法通常...

    android NFC (读取M1卡内容)

    本教程将详细介绍如何在Android设备上使用NFC功能读取M1卡的内容,特别是获取卡片的UID。 首先,我们需要了解Android的NFC框架。Android提供了一个名为`NFC`的API,它包含在`android.nfc`包中,用于处理NDEF(NFC ...

    android应用开发范例精解

    第1篇为基础篇,涵盖Android背景及开发环境和Android常用工程组件。第2篇为应用开发篇,通过实例介绍了Android UI布局、Android人机界面、手机硬件设备的使用、Android本地存储系统、Android中的数据库、多线程设计...

    Android studio 小案例

    1. **项目创建与布局设计** - 在Android Studio中,我们可以快速创建一个新的Android项目。通过选择“Start a new Android Studio project”,设置项目名、包名、目标平台等信息,即可生成基础项目结构。 - 使用`...

    Android SDK离线包合集(Android 4.0-5.0)

    Android SDK离线包合集(Android 4.0-5.0)。不用去Google下载,直接国内下载离线包,各版本文件独立,任意下载。手机流量上传了一部分,好心疼。如不能下载,请告诉我更新地址。 附上简单教程。 这是Android开发所...

    Android开发入门60个小案例+源代码

    在Android开发领域,初学者经常会面临许多挑战,如理解Android应用程序的基本架构、学习XML布局、掌握Java或Kotlin编程语言,以及如何与设备硬件交互等。"Android开发入门60个小案例+源代码"这个资源提供了丰富的...

    Android点餐系统项目

    《Android点餐系统项目》是一门深度探讨如何在Android平台上构建无线点餐系统的视频教程,旨在教授学员如何利用Android技术实现一个完整的点餐系统,包括客户端和服务端的开发。这门课程涵盖了移动应用开发的多个...

    android4.0源代码

    1. **junit**:这是一个测试框架,用于编写和运行单元测试。Android开发者通常会用它来验证应用程序中的各个组件是否按预期工作。 2. **com**、**android** 和 **org**:这些目录包含了Android系统的不同层次和组件...

    Android中使用Shape自定义形状

    1. **Shape基本结构** Shape对象的基本结构包含以下几个主要元素: - `&lt;shape&gt;`:根元素,定义形状类型,如`&lt;rectangle&gt;`(矩形)、`&lt;oval&gt;`(椭圆)、`&lt;line&gt;`(线)或`&lt;polygon&gt;`(多边形)。 - `&lt;solid&gt;`:...

    Android自定义日期选择器源码

    1. **自定义View组件**:创建一个新的`View`类,继承自`ViewGroup`,在这个类中,我们需要绘制日期选择器的所有元素,包括背景、网格线、日期数字等。使用`onDraw()`方法进行绘图,而`onMeasure()`方法用于确定视图...

    android source 2.2(android-8)

    1.下载android-2.2 source 2.解压放在android.jar所在目录的sources里即可(注意是sources而非source)。 比如我android.jar所在目录为 D:\android-sdk-windows\platforms\android-8,在这个目录下新建文件夹...

    android sdk27版本

    1. **Android 8.1.0 (Oreo) 特性**: - **Background Execution Limitations**:Android 8.1对后台服务和后台进程的限制更严格,以优化电池寿命和系统资源。 - **Notification Channels**:引入了通知渠道,允许...

    Android之基于RTP/RTSP即时通讯-Android源码

    1. **模块划分**:理解各个类和函数的作用,例如音频/视频数据的捕获和发送模块、网络连接和数据传输模块、用户界面展示模块等。 2. **API调用**:研究如何使用AnyChat提供的API,如何初始化、设置参数、处理回调...

    Android BLE蓝牙例子(包括android版Lightblue)实例源码

    源码里面有Bluetooth4_3/BLEDemo/Android_Lightblue.apk三个.前两个是BLE的demo。BLEDemo这个功能较Bluetooth4_3多一些,有兴趣的可以都看下。Android_Lightblue.apk是Android版的lightblue,在进行ble开发的时候用...

    Android一键清理后台实现

    在Android平台上,开发一款“一键清理后台”应用可以帮助用户快速释放设备内存,提高系统运行速度。这个功能通常包括清理正在运行的应用程序、终止不必要的服务以及管理后台进程。下面将详细介绍如何在Android 4.4...

Global site tag (gtag.js) - Google Analytics