zoukankan      html  css  js  c++  java
  • Android笔记——我的Android课的开始

    android 最底层的是什么?

      

                 硬件

    介于硬件与软件之间的一个交互,你猜猜需要什么?

    软件的上面一层便是各种的类库

    硬件与软件之间的交互,就是需要驱动的进行。

    1.android系统架构

         1.Linux内核层,android系统是基于linux2.6内核的

          2.系统运行库层,这一层通过一些c/c++库来为android系统提供了主要的特性支持

         3.应用框架层,这一层提供了构建应用程序时可能用到的各种api

          4.应用层,所有安装在手机上的应用都是属于这一层

    2.android的四大组件:Activity活动,Service服务,BroadcastReceive广播接收器,ContentProvider内容提供者。

    3.创建一个helloworld的android应用程序

       目录分析:

        1.src:放置我们所有Java代码的地方

        2.gen:这个目录是自动生成的,主要有一个R.java文件,在你的项目中添加的任何资源都会在其中生成一个相应的资源id。这个文件永远不要手动去修改它。

        3.assets:主要可以存放一些随程序打包的文件,在你的程序运行时,可以动态的读取这些文件的内容。另外,如果你的程序中使用到了WebView加载本地网页的功能,所有网页相关的文件也都存放在这个目录下。

       4.bin:它主要包含了一些在编译时自动产生的文件。

       5.libs:如果你的项目中使用到第三方jar包,就需要把这些jar包都放在libs目录下面,放在这个目录下面的jar包都会自动添加到构建路径里去。

      6. res:所有用到的图片,布局,字符串等资源都放在这个目录下面

       7.AndroidMainfest.xml:这是android项目的配置文件,程序中定义的所有四大组件都需要在这个文件中注册。另外还可以在这个文件里给应用程序添加权限的声明,也可以重写指定你创建时指定的程序最低兼容版本和目标版本。

      8.project.properties:这个文件非常地简单,就是一行代码指定编译程序时所使用的SDK版本。

    4.使用Android的日志工具Log

        Log.v()这个方法用于打印那些最琐碎的,意义最小的日志。对应级别verbose,是android日志里面级别最低的一种

        Log.d()打印一些调试信息,这些信息有助于调试程序和分析问题对应级别是debug

        Log.i()用于打印应一些比较重要的数据,这些数据应该是你非常想看到的,可以帮助你分析用户行为的那种,对应级别为info

        Log.w()打印警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下,这些出现警告的地方,对应级别为war

        Log.e()用于打印程序中的错误信息,这一般代表你的程序出现了严重的问题,必须尽快的修复,对应级别为error

    日志的具体在后面的文章中说明。

     一、JDK(不用安装)
    1.拷贝
          D:Javajdk1.8.0_91
    2.配置环境变量
          JAVA_HOME=D:Javajdk1.8.0_91
          CLASSPATH=.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;%JAVA_HOME%jrelib t.jar
          PATH=D:Javajdk1.8.0_91in;原来的
    3.校验
          随便目录运行  java -version

    二、运行eclipse ADT  (不用安装)
    1.配置一个环境变量ANDROID_HOME=D:Javaadt-bundle-windows-x86_64-20140702sdk
    2.直接运行eclipse.exe

    三、下载海马模拟器 
     
    四、Hello word
    1、运行Eclipse,点击DDMS等待
    2、运行海马模拟器
    3、在java的文件中New一个Android application progect项目
    4、在src目录下打开ManinActivity.java文件,在第一个方法onCreate()中写入

    //定位textView 这个控件
    TextView tv1=(TextView) this.findViewById(R.id.textView1);
    tv1.setText("你好,Android1班");

    5、如果海马模拟器的Android版本与Android项目不一致,打开AndroidManifest.xml,“android:minSdkVersion="17”’”17改成自己需要的版本
     
    6、在项目名右键Run AS的一个选项,运行

    7.分析

    接下来我们一起分析一下 HelloWorld 项目究竟是怎么运行起来的吧。首先打开

     AndroidManifest.xml 文件,从中可以找到如下代码:

     <activity

     android:name="com.test.helloworld.HelloWorldActivity" android:label="@string/app_name" >

     <intent-filter>

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

     </intent-filter> </activity>

         这段代码表示对 HelloWorldActivity 这个活动进行注册,没有在 AndroidManifest.xml 里注册的活动是不能使用的。其中 intent-filter 里的两行代码非常重要,<action android:name= "android.intent.action.MAIN" />和<category android:name="android.intent.category.LAUNCHER" />

    表示 HelloWorldActivity 是这个项目的主活动,在手机上点击应用图标,首先启动的就是这个活动。

    那 HelloWorldActivity 具体又有什么作用呢?我在介绍 Android 四大组件的时候说过,

    活动是 Android 应用程序的门面,凡是在应用中你看得到的东西,都是放在活动中的。因此你在图 1.15 中看到的界面,其实就是 HelloWorldActivity 这个活动。那我们快去看一下它的代码吧,打开 HelloWorldActivity,代码如下所示:

    public class HelloWorldActivity extends Activity {

     @Override

     protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.hello_world_layout);

     }

     @Override

     public boolean onCreateOptionsMenu(Menu menu) {

     // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.hello_world, menu);

     return true;

     }

     }

     首先我们可以看到,HelloWorldActivity 是继承自 Activity 的。Activity  Android 系统提供的一个活动基类,我们项目中所有的活动都必须要继承它才能拥有活动的特性。然后可以看到 HelloWorldActivity 中有两个方法,onCreateOptionsMenu()这个方法是用于创建菜单的,我们可以先无视它,主要看下 onCreate()方法。onCreate()方法是一个活动被创建时必定要执行的方法,其中只有两行代码,并且没有Hello world!的字样。那么图1.15 中显示的Hello world! 是在哪里定义的呢?

     其实 Android 程序的设计讲究逻辑和视图分离,因此是不推荐在活动中直接编写界面的,更加通用的一种做法是,在布局文件中编写界面,然后在活动中引入进来。你可以看到,在onCreate()方法的第二行调用了 setContentView()方法,就是这个方法给当前的活动引入了一个 hello_world_layout 布局,那 Hello world!一定就是在这里定义的了!我们快打开这个文件看一看。

     布局文件都是定义在 res/layout 目录下的,当你展开 layout 目录,你会看到 hello_world_layout.xml 这个文件。打开之后代码如下所示:

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".HelloWorldActivity" >

     <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" />

     </RelativeLayout>

     
                  Android项目的目录结构
    Activity 应用被打开时显示的界面
    src 项目代码
    R.java 项目中所有资源文件的资源id
    Android.jar Android的jar包,导入此包方可使用Android的api
    libs 导入第三方jar包
    assets 存放资源文件,比方说mp3、视频文件
    bin 存放编译打包后的文件
    res 存放资源文件,存放在此文件夹下的所有资源文件都会生成资源id
    drawable 存放图片资源
    layout 存放布局文件,把布局文件通过资源id指定给activity,界面就会显示出该布局文件定义的布局
    menu 定义菜单的样式
    String.xml 存放字符串资源,每个资源都会有一个资源id

       

        

              

      

    1.android系统架构

         1.Linux内核层,android系统是基于linux2.6内核的

          2.系统运行库层,这一层通过一些c/c++库来为android系统提供了主要的特性支持

         3.应用框架层,这一层提供了构建应用程序时可能用到的各种api

          4.应用层,所有安装在手机上的应用都是属于这一层

    2.android的四大组件:Activity活动,Service服务,BroadcastReceive广播接收器,ContentProvider内容提供者。

    3.创建一个helloworld的android应用程序

       目录分析:

        src:放置我们所有Java代码的地方

        gen:这个目录是自动生成的,主要有一个R.java文件,在你的项目中添加的任何资源都会在其中生成一个相应的资源id。这个文件永远不要手动去修改它。

        assets:主要可以存放一些随程序打包的文件,在你的程序运行时,可以动态的读取这些文件的内容。另外,如果你的程序中使用到了WebView加载本地网页的功能,所有网页相关的文件也都存放在这个目录下。

       bin:它主要包含了一些在编译时自动产生的文件。

       libs:如果你的项目中使用到第三方jar包,就需要把这些jar包都放在libs目录下面,放在这个目录下面的jar包都会自动添加到构建路径里去。

       res:所有用到的图片,布局,字符串等资源都放在这个目录下面

       AndroidMainfest.xml:这是android项目的配置文件,程序中定义的所有四大组件都需要在这个文件中注册。另外还可以在这个文件里给应用程序添加权限的声明,也可以重写指定你创建时指定的程序最低兼容版本和目标版本。

      project.properties:就是一行代码指定编译程序时所使用的SDK版本。

    4.使用Android的日志工具Log

        Log.v()这个方法用于打印那些最琐碎的,意义最小的日志。对应级别verbose,是android日志里面级别最低的一种

        Log.d()打印一些调试信息,这些信息有助于调试程序和分析问题对应级别是debug

        Log.i()用于打印应一些比较重要的数据,这些数据应该是你非常想看到的,可以帮助你分析用户行为的那种,对应级别为info

        Log.w()打印警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下,这些出现警告的地方,对应级别为war

        Log.e()用于打印程序中的错误信息,这一般代表你的程序出现了严重的问题,必须尽快的修复,对应级别为error

    日志的具体在后面的文章中说明。

  • 相关阅读:
    处理字符串拼接成想要的数组
    json 压缩中文不转码
    MySQL主从同步机制及同步中的问题处理
    mysql主从复制亲测,以及注意事项
    windows下mysql和linux下mysql主从配置
    拯救U盘之——轻松修复U盘“无法访问”的故障
    MUI框架开发HTML5手机APP(一)--搭建第一个手机APP
    UI之富文本编辑器-UEditor
    弹性布局详解——5个div让你学会弹性布局
    内置函数:min 用法
  • 原文地址:https://www.cnblogs.com/wugu-ren/p/6067114.html
Copyright © 2011-2022 走看看