2016-3-2

Android大致可分为四层结构,五块区域。

1、Linux内核层

基于Linux2.6内核。

2、系统运行库层

    库和运行时库。

3、应用框架层

提供相应的API。

4、应用层

所有手机应用都属于这一层。

 

 

Android应用开发特色

1、四大组件

活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)、内容提供器(Content Provider)。

2、丰富的系统控件

3、SQLite数据库

支持标准的SQL语句,还可以通过安卓封装好的API进行操作

4、地理位置定位

5、强大的多媒体

6、传感器

 

 

安卓应用布局分析

1、src

   放置所有java源码的位置

2、gen

   主要是R.java文件,在项目中添加的每一个资源都会在其中生成一个相应的资源ID。

3、assets

   主要存放一些随程序打包的文件,在程序运行时可以动态读取这些文件。若程序使用了WebView加载本地网页的功能,所有网页相关的文件也都会存放在这个目录下。

4、bin

   主要是编译产生的文件。

5、libs

   放置程序使用的第三方包jar,会被自动添加到程序中。

6、res

   在项目中使用到的所有图片、布局、字符串等资源都存放在此。图片放在drawable目录下,布局放在layout目录下,字符串放在values目录下。

7、AndroidMainfest.xml

  Android项目的配置文件,程序中定义的所有四大组件都需要在这个文件中注册。

8、project.properties

   通过一行代码指定编译程序时所使用的SDK版本。

 

 

活动注册

   活动需要在AndroidManifest.xml文件中进行注册,其中intent-filter里的两行代码很重要,指定了MainActivity为这个程序的主活动,也就是程序打开时会首先启动这个活动。

<activity
   
android:name=".MainActivity"
   
android:label="@string/app_name" >
    <intent-filter>
        <action
android:name="android.intent.action.MAIN"/>

        <category
android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

 

 

MainActivity

   项目中的活动需要继承Activity(系统提供的活动基类)才能拥有活动的特性。onCreateOptionMenu()方法用于创建菜单,onCreate()方法是一个活动被创建时必定要执行的方法。安卓讲究逻辑和视图分离,通用的做法是:在布局文件中编写界面,然后在活动中引入进来。(使用setContentView()方法)。

 

 

 

字符串的定义

安卓不提倡在程序中对字符串进行硬编码,所以一般把字符串定义在res/values/strings.xml中。


Res文件夹的构成

以drawable开头的文件夹是放图片资源的,以values开头的文件夹是放字符串的,layout文件夹放布局文件,menu文件夹放菜单文件。各个drawable文件夹是放置同一图片的不同分辨率的版本,根据设备而加载不同的图片,但一般偷懒的话只放一张在drawable-hdpi中。

 

 

引用资源

   1、在代码中通过R.string.hello_world引用

   2、在xml文件中通过@string/hello_world引用。

语法中string可以被替换成drawable、layout等引用其他类型资源。

 

 

Logcat的使用

  Tools->Android->Android Device Monitor

 

1、Log.v()

2、Log.d()

3、Log.i()

4、Log.w()

5、Log.e()

 

   可以通过设置tag为自己的字符串以用来过滤掉与程序无关的日志。

 

 

 

简单活动的设计

   为了实现逻辑和布局分离,所以需要写布局文件,在活动中用setContentView加载,并在AndroidManifest.xml文件中注册。注册需要用name指定活动,label显示为应用的名称和标题栏,如果这是主活动则需要加上intent-filter标签。

<activity android:name=".FirstActivity"android:label="Thisis FirstActivity">
    <intent-filter>
        <action
android:name="android.intent.action.MAIN"/>
        <category
android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

 

 如果不想在活动中显示标题栏,则可以在onCreate()中加入requestWindowFeature(Window.FEATURE_NO_TITLE),注意这句需要在setContentView前,否则会报错。

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.first_layout);

 

Toast(使用的显示消息的方法)

   在活动文件中通过findViewByID()方法获取布局文件中的元素,返回的是一个View对象,向下转型成Button对象。通过调用setOnClickListener()方法注册监听器,点击时就会执行监听器中的onClick()方法。

   Toast的使用方法为:通过静态方法makeText()创建一个Toast对象,再调用show函数显示。makeText需要三个参数:

1、上下文(由于活动就是一个上下文对象,所以传入活动本身即可)

2、显示的文本内容

3、显示的时间(Toast.LENGTH_SHORT和Toast.LENGTH_LONG两个内置常量可用)

 

 

 

在活动中使用Menu

   同样逻辑和设计分离,菜单需要写菜单的布局文件,然后在活动中重写onCreateOptionsMenu()方法。通过getMenuInflate方法获得MenuInflater对象,再调用它的inflate方法为当前活动创建菜单。Inflate方法有两个参数,第一个指定用哪个资源文件创建菜单,第二个指定菜单添加到哪个menu对象中。最后返回true就能显示菜单,返回false就不显示菜单。

@Override
public boolean onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.main,menu);
    return true;
}

 

   在活动中重写onOptionsItemSelected()方法来定义菜单项响应事件。

@Override
public boolean onOptionsItemSelected(MenuItem item){
    switch(item.getItemId()){
        case R.id.add_item:
            Toast.makeText(this,"You clicked Add",Toast.LENGTH_SHORT).show();
            break;
        case R.id.remove_item:
            Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT).show();
            break;
        default:
    }
    return true;
}

 

销毁活动

   使用finish()函数就可以销毁当前的活动,效果与点击手机的返回键相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值