`
chandler
  • 浏览: 81496 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android学习笔记(二)

阅读更多

解耦
      其实这一段的标题我不知道以什么开始为好,想来想去还是解耦这个词比较和题目。
     最早知道耦合这个词汇,还是从大话设计模式这本书里面知道的。而现在的工作是一个旧系统的维护,真的觉得紧耦合真是万恶之源。而最近学了android的开发,然后看到了android程序的文件的体系,处处都在为了解耦而努力。有那么一点点感动。
     从一个程序的角度来说,除了本身的业务逻辑之外,还有有UI,图像,字符等组成。从一个程序来说,他们之间应该是松耦合的。比方说我把界面上的一个label从“名字”,改成“用户名”,理想状态应该是不需要任何其他任何东西的(严格点,就是不需要重新编译。)但是实际操作中,除非一个系统花费很大的经历在一些基础建设上,比方说用了spring,或者自己写个框架,这个做起来很吃力。当然,系统简单的情况下,这种级别的修改也很方便。
     而android的开发,则是内置了这种解耦的框架(现在主要介绍了资源管理,而不是业务逻辑)。在android中,把资源归结为常用的3类,统一放在res文件夹下面。图像文件放在drawable,UI放在layout上面。而所有String值和其他一些值都放在Value文件下面。然后在程序中进行引用。
     这里的引用都是在于R这个类。这个类的作用是程序与资源中的一个桥梁的作用。这个类是一个包含类。其中包含了很多常量,分别对应的是res下面的一个资源。

activity的生命周期。
    这里也是主要是几个概念为主。
    首先是在Manifest.xml中的配置。其中比较特别的是<intent-filter>这个标签,不过这是以后讲的东西,所以这里也没讲太多。
    其次是Activity Stacks,其时Last-in-first-out也就是栈。
    Activity States
       Active:和用户交互的activity,通俗点就是当前你看到的页面。
       Paused:能够看得见,但是不发生交互的activity。比方说不是全屏显示的失去了焦点。
       Stopped:不可见,但是还在stacks中的。
       Inactive:移出stacks的

Monitoring State Changes和生命周期
package com.paad.myapplication; import android.app.Activity; import android.os.Bundle; public class MyActivity extends Activity { // Called at the start of the full lifetime. @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); // Initialize activity. } // Called after onCreate has finished, use to restore UI state @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); // Restore UI state from the savedInstanceState. // This bundle has also been passed to onCreate. } // Called before subsequent visible lifetimes // for an activity process. @Override public void onRestart(){ super.onRestart(); // Load changes knowing that the activity has already // been visible within this process. } // Called at the start of the visible lifetime. @Override public void onStart(){ super.onStart(); // Apply any required UI change now that the Activity is visible. } // Called at the start of the active lifetime. @Override public void onResume(){ super.onResume(); // Resume any paused UI updates, threads, or processes required // by the activity but suspended when it was inactive. } // Called to save UI state changes at the // end of the active lifecycle. @Override public void onSaveInstanceState(Bundle savedInstanceState) { // Save UI state changes to the savedInstanceState. // This bundle will be passed to onCreate if the process is // killed and restarted. super.onSaveInstanceState(savedInstanceState); } // Called at the end of the active lifetime. @Override public void onPause(){ // Suspend UI updates, threads, or CPU intensive processes // that don’t need to be updated when the Activity isn’t // the active foreground activity. super.onPause(); } // Called at the end of the visible lifetime. @Override public void onStop(){ // Suspend remaining UI updates, threads, or processing // that aren’t required when the Activity isn’t visible. // Persist all edits or state changes // as after this call the process is likely to be killed. super.onStop(); } // Called at the end of the full lifetime. @Override public void onDestroy(){ // Clean up any resources including ending threads, // closing database connections etc. super.onDestroy(); } }

    
    书中有张图。比较清晰的解释了他们之间的逻辑关系。有兴趣的可以去看一下。
    还有种记忆方法就是
    The Full Lifetime:onCreate和onDestroy 整个程序
    The Visible Lifetime:onStart和nStop     进入Active
     The Active Lifetime:onResume和onPause ,获得和失去焦点。

Android Activity Classes
       MapActivity,ListActivity,ExpandableListActivity,ActivityGroup

分享到:
评论
1 楼 doylecnn 2009-07-21  
Last-in-first-out也就是先进先出的模式
???

相关推荐

    第一行代码 android学习笔记 完整版

    "Android学习笔记" Android学习笔记是Android开发者的必读书籍,书中涵盖了Android系统架构、Activity、Intent、资源管理等多方面的知识。本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中...

    Android学习笔记(十)——实现新闻列表

    Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) Android学习笔记(四)Android 中Activity页面的...

    Android开发学习笔记

    ### Android开发学习笔记 #### Button按钮的实现与交互 在Android开发中,`Button`控件是最常用的用户界面元素之一,用于触发特定的操作或事件。本文档将详细讲解如何创建并自定义一个简单的按钮,并设置点击事件...

    android 学习笔记

    Android学习笔记(1)-永远不变的Hello World Google的Android SDK发布也有一段时间了,一直想研究一下却苦于找不到时间。利用这个周未,开始强迫自己再次进入学习状态,原因很简单:我看好开放的gPhone。 SDK的下载...

    Android开发学习笔记(整理)

    Android开发学习笔记(整理),整理论坛android学习笔记,较完整的讲解了android的内容。包括:view、activity、service、intent、广播机制、http连接、数据sqllite存储、后台线程、各种layout、偏好、本地文件操作、...

    Android 学习笔记

    这篇学习笔记主要涵盖了关于布局的一些基本概念,特别是`fill_parent`和`wrap_content`这两种尺寸指定方式,以及如何通过XML布局文件来精确控制组件的位置。 首先,`fill_parent`和`wrap_content`是Android布局中的...

    java学习细节 android学习笔记

    根据给定的信息,我们可以从Java和Android学习笔记中提取出一系列重要的知识点,下面将逐一进行详细解释。 ### Java基础知识 #### 1. 命令行基础操作 - **`javacmd`**: 这个命令是Java命令行工具的一部分,用于...

    android学习笔记之二

    在“android学习笔记之二”中,我们主要探讨的是如何在Android平台上实现一个用户登录的模拟工程。这个项目,名为“UserLoginTestProject”,旨在帮助开发者理解和实践Android应用中的用户认证流程。通过这个实例,...

    Android学习笔记整理.pdf

    Android学习笔记整理.pdf

    android 学习笔记(全全整理)

    Android学习笔记全全整理,是针对想要深入理解并掌握Android开发技术的学习者们的一份宝贵资源。这份笔记涵盖了从基础到高级的多个方面,旨在帮助读者建立起完整的Android知识体系。以下将详细介绍其中可能包含的...

    ArcGIS for android学习笔记

    本篇学习笔记主要涵盖了ArcGIS for Android的基础配置和核心组件MapVie的使用。 首先,配置ArcGIS for Android项目需要在`Project`级别的`build.gradle`文件中添加Esri的仓库,确保能获取到所需的库。接着,在`...

    Android基础学习笔记

    Android基础学习笔记主要涵盖了一系列关于Android开发的基本概念和关键组件,以下是这些知识点的详细解析: 1. **Activity**: 是Android应用程序的基本单元,它代表用户在屏幕上看到的一个界面。每个Activity都必须...

    android学习笔记(html完整版)目录

    目录,整理论坛android学习笔记,较完整的讲解了android的内容。包括:view、activity、service、intent、广播机制、http连接、数据sqllite存储、后台线程、各种layout、偏好、本地文件操作、apdapter等几乎全部内容...

    android学习笔记.zip

    《Android学习笔记》 在移动应用开发领域,Android操作系统占据着重要的地位,为开发者提供了丰富的API和工具,使得创建各种应用程序变得可能。本压缩包文件包含了一位学习者从第一天到第五天,以及一个特定项目...

Global site tag (gtag.js) - Google Analytics