Android之自学笔记(一)

来源:互联网 发布:c语言getchar()用法 编辑:程序博客网 时间:2024/05/18 07:03

准备开发环境


安装ADT插件

下载用于在Eclipse中开发android应用的ADT(Android Development Tools)插件。

Help → Install Software → Add → Achieve →选择ADT的zip文件,输入Name,确定,勾选安装项(如果安装不上, 就把该zip文件丢到eclipse/dropins下)。为了防止安装时自动更新,所以勾掉Contact all update sites during install tofind required software。→ 重启Eclipse。

安装完之后在工具栏就会出现Android机器人的图标。在Preference也会有对应的项。

安装Android SDK

AndroidSDK包含了开发Android应用所依赖的jar文件,运行环境及相关工具。有点类似于JDK。

从官方网站下载的SDK不带有各种版本的android平台(platforms文件夹是空的),可以通过SDK Manage.exe来下载android的版本。

完成之后再platforms中有对应的android文件。

为ADT插件指定使用的SDK环境:

Window →  Preference → Android → 选择SDK Location →选择解压的SDK文件 → Apply,就会出现Android版本的列表 → OK

创建android手机模拟器

选择屏幕分辨率:

HVGA:320*480

QVGA:240*320

WQVGA400:240*400

WQVAG432:240*432

WVGA800: 480*800(default)

WVGA854: 480*854

几个常用eclipse视图窗口

视图File Explorer

该视图有3个文件:

data: 存放原件产生的数据

mnt: 存放外部的数据

  asec

  sdcard: 外部设备

system: 存放android系统文件

 

视图Emulator Control 模拟器控制器

模拟电话呼出

打开手机模拟器之后,输入Telephony Actions : 5554 点击Call就能模拟呼叫手机模拟器了。


第一个Android应用


新建项目

File → new → Project →Android → Android Project →

输入Project name: HelloWord

选择对应android平台

输入Application name(应用名称):  第一个应用

输入Package name(Android中使用 Package name作为应用的唯一标识。):com.gshen.android.app

创建Create Activity(Activity代表窗口,该窗口可以接受用户的输入事件):Main

选择Minimum SDK版本,表示该应用程序可以在选择版本以上的版本运行

项目安装部署到模拟器上

第一种:项目右键→ Run As → Android Application(推荐, 内部也是通过adb.exe实现)

第二种:编译之后,会在根目录/bin下生成一个HelloWorld.apk 的文件,然后通过android-sdk-windows\tools下的adb.exe来完成项目部署

cd E:/android-sdk-windows/tools

adbinstallE:/workspace/Android_HelloWrod/bin/HelloWord.apk

卸载程序

第一种:setting → 管理应用程序 → 就可以操作

第二种:通过adb指令来完成

adbuninstall <应用的包名>   eg. adbuninstall com.gshen.android.app

项目的目录结构

src/    存放源文件

gen/    存放由开发工具自动生成的文件(由开发工具维护),有一个R.java:作用是登记各种资源的id,资源id是由编译器在放入res(资源)时生成的

publicfinal class R {

    publicstatic finalclass attr {

}

/*这个类专门登记图形资源,可以通过这个ic_launcher资源id找到对应图片*/

    publicstatic finalclass drawable {

        publicstatic finalint ic_launcher=0x7f020000;

    }

    publicstatic finalclass layout {

        publicstatic finalint main=0x7f030000;

    }

    publicstatic finalclass string {

        publicstatic finalint app_name=0x7f040001;

        publicstatic finalint hello=0x7f040000;

    }

}

使用静态内部类实现 [gshen1] 

 

res/  存放资源文件:比如图片,文字,布局等等

drawable-*/  为了适应不同分辨率的屏幕,图片文件提供了drawable-hdpi(高), drawable-mdpi(中), drawable-ldpi(低)三个文件夹 ,开发时我们可以为同一张图片设置不同的分辨率,分别放在这三个文件夹下。

    layout/    存放界面布局和的文件

    values/    存放应用中用到的数据,也用于实现国际化,减少相同文字内存空间的使用比如在string.xml中添加:

      <stringname="hello_world">你好,世界</string>

在R.java文件的string内部类下就会生成对应的资源id:

publicstatic finalclass string {

        public static final int app_name=0x7f040001;

        public static final int hello=0x7f040000;

        publicstatic finalint hello_world=0x7f040002;

    }

这样在项目中就可以通过hello_world找到对应的字符串了。

amin/  存放定义动画的XML文件

xml/   存放应用中配置的数据, 在Activity中使用getResources().getXML()读取该目录下XML资源文件。

raw/   该目录用于存放应用使用到的原始文件,如音效文件等。编译软件时,这些数据不会被编译,他们被直接加入到程序安装包中,为了在程序中使用这些资源,可以通过调用getResources().openRawResources(ID),参数ID形式:R.raw.i_definition

assets/    存放资源文件,这个文件夹下的资源文件不会在R.java生成资源id,如果要访问这个路径下的资源文件,通过:file:///android_asset/icon.jgp

AndroidMainifest.xml  项目清单文件(imp)

这个文件列出了应用程序所提供的功能,以后开发好的各种组件(Activity、ContentProvider、BroadcastReceiver、Service)需要在该文件中配置,如果应用使用到了系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等),还需要在该文件中生命使用权限。

<activityandroid:label="@string/app_name"

            android:name=".Android_HelloWorldActivity">

     <intent-filter >

          <actionandroid:name="android.intent.action.MAIN"/>

          <categoryandroid:name="android.intent.category.LAUNCHER"/>

     </intent-filter>

</activity>

这个activity是应用程序的入口,指定应用程序的图标出现在启动列表中。

清单文件是在应用程序安装的时候读取,注册。

default.properties  项目环境信息,不需要操作

应用程序安装过程

.java →  .class →通过dx工具再转成一个.dex  → 将.dex文件和资源文件打包一个压缩文件,这也是一个签名过程,使用一个证书秘钥(证书位置:Android→Build→Default debug keystore目录下)对文件打包签名,完成之后就是一个.apk文件。

(如果我们是调用Run As Android Application,则会默认调用adb指令安装到模拟器)

应用程序启动过程

用户点击图标之后,创建一个进程 → 创建主线程 → 在主线程中实例化Activity →操作系统把应用有关的信息(Context)存放进Activity中,然后调用onCreate()方法,再调用main.xml布局方式。

@Override

    publicvoid onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

}

布局及单位

布局方式(容器,用于摆放控件)有几种:

1、 LineLayout(线性布局)

2、 RelativeLayout(相对布局)

3、 TableLayout(表格布局)

4、 FrameLayout(帧布局)

Android中显示的单位

1、 px(pixels)像素

一般HVGA代表320*480像素,则个用的比较多

2、 dip或dp(device independent pixels)设备独立像素

这个和设备的硬件有关,一般为了支持WVGA、HVGA、QVGA推荐使用这个,不依赖像素

3、 sp(scaled pixels – best for text size)比例像素

主要处理字体的大小,可以根据系统的字体自适应

除了上面三个显示单位,还有几个不太常用的:

in(inches)英寸

mm(millimeters)毫米

pt(points)点,1/72英寸

为了适应不同分辨率,不同的像素密度,推荐使用dip,文字使用sp。


 [gshen1]为什么这么实现?

0 0