Android学习笔记(第一篇)编写第一个程序Hello World+Activity

  PS:实验室里就我一个搞Android的,像人家学习J2EE的,还有人带着去学,我这样没人带的就只能自己摸爬滚打了,也总算是把大部分的基础算是学完了,终于开始正式的搞Android了...无人带的一介菜鸟,我还是自己默默的努力吧...

学习内容:

1.编写第一个Hello World程序..

  学习Android,那么就需要有一个编译器来集成这个环境,然后在搭建好环境的编译器上进行开发就可以了,我所介绍的都是在Eclipse上来进行Android的开发...环境搭建在这里我就不进行介绍了..在这里就直接来开发...

  先新建一个项目,想必新建项目这东西大家都明白...在建立完Android项目以后,现在一般都是4.X以后的版本了...因此在4.X以后的版本的项目中的layout布局中都会增加一个fragment.xml文件...这个文件被称之为碎片功能,由于自己也是新手,这个东西也是刚刚接触,对这个东西也不是很了解,因此我先直接删除了fragment.xml文件,只是用activity_main.xml文件。。。删除fragment.xml文件后,需要修改MainActivity.java文件,否则会直接出现错误..修改内容如下...//注释掉的部分,代表我们需要修改的部分...直接删除掉也可以,注释掉也行...

package com.example.android_hello;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
import android.app.Activity;
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//        if (savedInstanceState == null) {
//            getSupportFragmentManager().beginTransaction()
//                    .add(R.id.container, new PlaceholderFragment()).commit();
//        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    /**
     * A placeholder fragment containing a simple view.
     */
//    public static class PlaceholderFragment extends Fragment {
//
//        public PlaceholderFragment() {
//        }
//
//        @Override
//        public View onCreateView(LayoutInflater inflater, ViewGroup container,
//                Bundle savedInstanceState) {
//            View rootView = inflater.inflate(R.layout.fragment_main, container,
//                    false);
//            return rootView;
//        }
//    }

}

同时我们还需要修改activity.xml文件,把其中的内容全部删除掉。然后以下代码..

放入一个绝对布局和一个文本显示组件...
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world">

    </TextView>
</RelativeLayout>

  然后直接进行运行就可以了...其实直接建立出来的Android项目也是可以直接进行运行的,运行的结果也是会在模拟器上显示出Hello World...因为新手的原因,因此就使用了常规的模式...以后再对fragment进行深入的研究...
  我这个在建立了4.X以后的版本后,会多一个appcompat文件,里面包含了一些要调用的类,这是在22.1以后的版本增加的一个新的东西,这个类的提供可以带来更多的便利..这个文件是不允许删除的...删除掉以后程序会报错...

2.Activity的了解...

  Activity是Android程序的四大组件之一...Activity是程序的应用层...程序的每一个显示屏幕就是一个Activity...Activity可以理解成一个JSP文件...Activity是无法直接显示的,它是一个抽象层,一个壳子,显示的内容就是View或ViewGroup,就是用户界面组件..这个下章再说...先有个印象...

  Activity是具有生命周期的...手机最重要也是最基础的功能是打电话,也就意味着电话来的时候可能随时要把现在的程序暂停,如果电量不足的时候也可能随时要把现有程序关闭;因此Android程序和电脑上的程序有所不同,具体到Activity,Activity的生命周期不是自身控制的,而是由Android系统控制的。

Activity的四种基本状态...

i.running运行状态...

这个状态表示正在运行的Activity,显示在屏幕的最前端,可以和用户进行相应的交互...

ii.Paused暂停状态...

Paused状态表示的现在的Activity被一个透明层或者是另一个非全屏的Activity进行了覆盖...虽然可见,但是无法实现用户交互...

iii.Stop停止状态...

当一个Activity被另一个Activity完全覆盖的时候,用户是无法见到的...

iv.Killed杀死状态

表示Activity根本没有进行启动或者是直接被系统终结杀死的状态...

Activity的生命周期图...                                                

Activity栈。。。。


  正在运行的Activity 处在在栈的最顶端,它是运行状态的,当有新Activity进入屏幕最上端时,原来的Activity就会被压入第二层,如果他的屏幕没有被完全遮盖,那么他处于Pause状态,如果他被遮盖那么他处于Stop状态。当然不管你出于任何一层,都可能在系统觉得资源不足时被强行关闭,当然关闭时在栈底的程序最先被关闭。

  譬如:当你在程序中调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:他告诉 Activity Manager该Activity实例可以被“回收”。随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,把原 Activity 压入到栈的第二层,从 Running 状态转到 Paused 状态。

  三.实例:观察翻转屏幕导致的Activity状态变化

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
import android.widget.TextView;
import android.app.Activity;
import android.widget.ImageView;
import android.app.Activity;
/** Called when the activity is first created. */
public class MainActivityLife extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Log.i(tag, “onCreate”);
    }
@Override
public void onStart(){
    super.onStart();
    Log.i(tag, “onStart”);
    }
@Override
public void onPause(){
    super.onPause();
    Log.i(tag, “onPause”);
    }
@Override
public void onResume(){
    super.onResume();
    Log.i(tag, “onResume”);
    }
@Override
public void onStop(){
    super.onStop();
    Log.i(tag, “onStop”);
    }
@Override
public void onDestroy(){
    super.onDestroy();
    Log.i(tag, “onDestroy”);
    }
}

通过运行,我们会在LogCat控制台下看到输出结果...和下面结果类似...

时间: 2024-10-12 06:58:02

Android学习笔记(第一篇)编写第一个程序Hello World+Activity的相关文章

Python学习笔记——基础篇【第一周】(未完待续)

学习Python目的: 1.学完之后,可以做开发运维监控.自动化软件.聊天软件.BBS.博客和网站. 2.投资自己,结识更多的朋友,变更更优秀的人 Python第一周笔记 Python语言介绍 python创始人Guido,荷兰人,Python源自他所挚爱的电视剧Monty Python's Flying Circus.Python编译器使用C语言实现,能够调用C语言库文件.1991年初,Python发布了第一个公开发行版. Python版本: Python1.0   1994年 python2

Android学习笔记(第二篇)View中的五大布局

PS:人不要低估自己的实力,但是也不能高估自己的能力.凡事谦为本... 学习内容: 1.用户界面View中的五大布局... i.首先介绍一下view的概念   view是什么呢?我们已经知道一个Activity是Android的显示层,但是Activity是不能直接显示在屏幕上的,它也像JSP那样,显示的东西是html,那么Android也不例外,Activity是一个抽象的壳子,而显示的东西就是view或者是viewgroup(图形用户组件)....   有了这个概念,我们就清楚view是如何

Python学习笔记基础篇——总览

Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列表.字典.主文件判断.对象 Python学习笔记——基础篇1[第三周]——set集合 Python学习笔记——基础篇2[第三周]——计数器.有序字典.元组.单(双)向队列.深浅拷贝.函数.装饰器 Python学习笔记——基础篇[第四周]——迭代器&生成器.装饰器.递归.算法.正则表达式 Python

汇编入门学习笔记 (三) —— 第一个程序

疯狂的暑假学习之  汇编入门学习笔记 (三)-- 第一个程序 参考:<汇编语言> 王爽  第四章 1.一个源程序从写到执行的过程 第一步:编写汇编源程序 第二步:对源程序进行编译连接 第三步:在操作系统中执行 2.源程序 代码: assume cs:first first segment start: mov ax,2 add ax,ax add ax,ax mov ax,4C00H int 21H first ends end start 代码解释: assume .segment.ends

udacity android 学习笔记: lesson 4 part b

udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 联系:1307316一九六八 声明:本文採用下面协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处. tips:https://code.csdn.net/titer1/pat_aha/blob/master/Mar

Pro Android学习笔记(十二):了解Intent(下)

解析Intent,寻找匹配Activity 如果给出component名字(包名.类名)是explicit intent,否则是implicit intent.对于explicit intent,关键就是component 名字,在<intent-fliter>中声明的其他属性被忽略.对于implicit intent,则根据action,category和data来进行匹配.然而一个intent fliter中可以声明多个actions,多个categories,多个data属性,因此可以满

Android学习笔记(四一):SQLite的使用

SQLite是非常流行的嵌入式关系型数据库,轻载,速度快,而且是开源.在Android中,runtime提供SQLite,所以我们可以使用SQLite,而且是全集的SQLite.SQLite提供SQL接口,和一般的数据库一样.但是Android的API不采用JDBC,JDBC消耗太多的资源. SQLite支持绝大部分SQL-92标准,不支持:FOREIGN KEY constraints, nested transactions, RIGHT OUTER JOIN, FULL OUTER JOI

Android学习笔记(四三):文件访问

之前我们学习了通过preference和SQLite数据库进行数据存储,也可以通过文件方式.文件可以是在应用打包时预置,也可以是应用所生成. 文件访问有两种方式:一:静态数据的文件可以防止在res/raw中,这些文件是只读的,只有在应用版本升级的时候进行修改,或者我们先读出这些数据,通过 reference的方式来处理,这样以后可以进行修订,但是这种方式,会有两份数据保存.二:另一种方式是通过URL访问文件,动态数据的读取也可以采用SQLite3的方式. res/raw/下静态文件的读取 在re

Android 学习笔记(二七):Menu

Menu由两种形式,Option menu和Context menu.前者是按下设备的Menu硬按钮弹出,后者是长按widget弹出. Option Menu 当我们按下Menu的硬件按钮时,Option Menu将被触发显示,最多可以显示6个选项的icon菜单,如果选项多于6个,第6个选项显示为“More“,点击可以进入扩展菜单.我们将在Android学习笔记(十一):Activity-ListView的例子一的基础上来学习Option Menu,也就是一个基于activity的菜单. 在这个