Android开发深入浅出一

来源:互联网 发布:市场投放数据分析 编辑:程序博客网 时间:2024/06/05 19:38
 

                         不管是学习一门语言还是学习一个框架,我们都需要了解它的历史背景,今天就让我来和大家分享一下我对于Android的学习经验吧:

  学习目标:Android的今生和前世                  Android的环境搭建                 HelloWorld案例                 Android的基本程序分析

                   Android的前世和今生       

                          2007年9月发布第一个版本,一整套免费的手机软件开发系统,operating system(操作系统),middleware(中间件),key mobile applications(关键的手机应用)

  最初由Android公司开发后被google收购,现在又Open Handset Alliance开发手机联盟维护

  特点:开发性,所有的应用时平等的,应用间无界限,快速方便的应用开发

    在这里分享一下别人对于手机平台的感觉:

            手机平台的战国时代:3G,4G  ---- 移动互联网的威力

                                           nokia    Iphone     Android  blackBerry    WP7   乱乱乱

                                            nokia   ---------------英雄迟暮

                                           Iphone   --------------伟大的领路人 丛矢之的

                                           Android    -----------Google伟大公司的跟风之作

                                           blackBerry  ----------独行侠

                                           WP7    ----------------微软能否挺起来的希望

           战火的蔓延

                         Iphone Ipad            iTunes 音乐在线商店         AppStore应用在线商店     iCloud云服务

             手机开发延伸  -------平板应用      总称移动应用

       

            Android的独特性 

                    Application Framework      Dalvik虚拟机          基于开源项目webKit引擎的浏览器

                    优化的图形处理---通用的2D图形库以及基于OpenGL ES的3D图形支持

                    SQLite数据库     

                   多媒体支持 (MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)

                     Bluetooth,EDGE,3G,and WiFi(handware dependent)

                   相机,GPS,罗盘,加速度计,重力感应

                    丰富的开发环境支持,模拟器,调试工具,ADT插件

      Android体系:applications和application Framework基于封装好的JAVA,而最底层是Linux kernel基于语言是C/汇编

  

       对于Android的环境搭建在这里我就不做介绍了,在网上有大量的文档可以供大家查看,对于Android项目工程我也不做解释,以下我只对R.java文件进行讨论

     

               R.java文件时项目自动生成的,不可修改的文件,其中定义了项目中       所有资源索引

  public final class R{

             public static final class attr{

             }

             public static final class drawable{

                 public static final int icon=0x7f020000;

               }

               public static final class layout{

                     //这里的layout就是res文件夹中的layout文件,main就是指的main.xml文件

                      public static final int main=0x7f030000;

               }

               public static final class string{

                        public static final int app_name=0x7f040001;

                         public static final int hell0=0x7f040000;

               }

}

    main.xml文件

 

                  如果你的程序由多屏内容组成,你就要在layout文件夹中定义多个xml文件以规定每一屏要显示的内容
                 想想这样做的好处?视图与业务逻辑代码的解耦
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout  //线性布局
mainl.xml   //文件定义了在一个屏幕中显示什么内容
xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"           //布局宽度占满整个父节点即屏幕宽度
    android:layout_height="fill_parent"
    >
<TextView  //文本视图框
    android:layout_width="fill_parent"    //文本框宽度填充整个父节点
    android:layout_height="wrap_content" //文本框高度适合内容
    android:text="@string/hello"//文本框显示的内容是string.xml文件中hello键对应的值
    />
</LinearLayout>

 

              

     string.xml文件                

              程序中用到的所有字符定义在string.xml文件中
              这里也应用了显示内容与业务逻辑解耦的思想,方便国际化(后面介绍)
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">
   //把这里改成中文试试看
       Hello World, HelloworldActivity!
    </string>
    <string name="app_name">Helloworld</string>
</resources>

 

       androidmanifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="huao.android.helloworld"//指定Android应用的包名
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="4" />//最小支持的版本
    <application android:icon="@drawable/icon" //应用程序的图标
        android:label="@string/app_name">   //应用程序的标签名
        <activity android:name=".HelloworldActivity"        //定义一个Activity并指明类名
                  android:label="@string/app_name">         //指定该Activity在标签栏显示的字符
            <intent-filter>
                  指定该Activity是程序的入口
                <action android:name="android.intent.action.MAIN" />
                         指定加载该应用时运行该Activity
               <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

 

         今天对于Android开发就讨论到这里,下次将进一步的对Android进行讨论