【Android】从入门到中级 上

菜鸟教程:http://www.runoob.com/android/android-tutorial.html

前言:

准备:java编程知识

Android开源的,基于 Linux 的移动设备操作系统

Android 应用程序一般使用 Android 软件开发工具包,采用 Java 语言来开发

本教程为初学者准备,帮助其理解基本的Android编程。完成本教程以后,你将具备Android开发的中等专业知识水平,由此,可以进入下一阶段的学习;感谢菜鸟教程

开发环境:

操作系统:

  • Microsoft Windows XP 或更高版本。
  • 带有英特尔芯片的 Mac OS X10.5.8或更高版本。
  • 包括 GNU C 库2.7或更高版本的 Linux 系统。

工具:【

目前有jdk 、jre 、Android studio 就可以了,android studio 发现缺什么会提示你下载

架构:五部、四主层

Android æ¶æ

从下往上

1、linux内核: 

 基本系统功能:进程、内存、设备管理

2、程序库:

  集合:开源web浏览器引擎webkit、知名libc库,SQLite数据库,SSL

3、Android程序库:

为android开发的基于java的程序库(android用*代替)

android.app:提供应用程序模型的访问,所有android程序的基石

*.content 方便程序间、组件间内容访问、发布、消息传递

*.database:访问内容提供者发布的数据,SQLite数据库管理类

*.opengl-OpenGL ES 3D图片渲染API java接口

*.os:应用程序 访问标注 操作系统服务的能力:消息、系统服务和进程间通信

*.text 在设备显示上渲染和操作文本

*.view:应用程序用户界面的基础构建块

*.widget 丰富的预置用户界面组件的集合,包括按钮、标签、列表、布局管理、单选按钮

*.webkit 一系列类的集合,容许为应用程序提供内建的web浏览能力

android运行时

提供Dalvik虚拟机的关键组件,类似于java虚拟机但专为android设计和优化

使得可在java中使用linux核心功能,内存管理、多线程,使得每个android应用程序运行在自己独立的虚拟机进程

同时提供一系列核心的库方便android应用程序开发者使用标准的java语言来编写android应用程序

应用框架:

以java类的形式为应用程序提供高级服务:

1、活动管理者:控制程序生命周期和活动栈的所有方面

2、内容提供者:容许程序间发布和分享数据

3、资源管理者:提供对非代码嵌入资源的访问,如字符串、颜色设置和用户界面布局

4、通知管理器:容许应用程序显示对话框或通知给用户

5、可扩展的视图集合,创建程序用户界面

应用程序

顶层all的android程序,写的程序 安装在这层 包括 通讯录 浏览器 游戏等

从虚拟机到界面、全套、自力更生、优秀优秀

android应用程序组件

基本构建块,组件由应用清单文件松耦合的组织,androidManifest.xml描述每个组件及如何交互

  松耦合系统:基于消息的系统,客户端及远程服务不知道对方是如何实现的;客户端和服务间通讯由消息的架构支配,只要消息符合协商的架构,客户端或服务的实现就可据需更改不必担心破坏对方

1、activities:描述UI,处理用户及机器屏幕的交互

     一个活动 标识 一个 具有用户界面的 单一屏幕:

        邮件应用可包含一个活动用于显示新邮件列表,另一个活动编写邮件,再一个活动阅读邮件

        多于一个活动时,其中一个会被标记为应用程序启动时的显示

//一个活动是Activity类的一个子类
public class MainActivity extends Activity {
 //我最近是不是傻了,这个说的啥?
}

2、services:处理与应用程序关联的后台操作

    如服务可以是在用户在使用不同程序时在后台播放音乐或在活动中通过网络获取数据但不阻塞用户交互

3、broadcast receivers:处理android操作系统和应用程序间的通信

    广播接收器简单地响应从其他应用程序或系统发来的广播消息;如应用可发起广播让其他应用know一些数据已被下载到设备,且可供他们使用,广播接受器会拦截这些通信并采取适当的行动

public class MyReceiver  extends  BroadcastReceiver {
//每个消息以Intent对象的形式来广播
}

4、content providers:处理数据和数据库管理方面的问题

内容提供组件通过请求 从一个应用程序到另一个应用提供数据,请求由contentResolver类方法处理,

这些数据可以存储在文件系统、数据库或其他地方(这个是字有意思吗?)

public class MyContentProvider extends  ContentProvider {
//内容提供者是ContentProvider类的子类,并实现一套标准的API,以便其他应用程序来执行事务
}

附件组件

用于以上提到的实体、他们间的逻辑及连线的构造

fragments:活动中一个行为或一部分用户界面

views:绘制在屏幕上的ui元素,包括按钮、列表等

layouts:控制屏幕格式,展示视图外观的view继承

intents:组件间的消息连线

resources:外部元素,例如字符串资源、常量资源、图片

mainfest:应用程序的配置文件

android hello world 实例:

主要活动文件

//主要活动代码,将被转化为Dalvik可执行文件并运行
//引用自res/layout目录下的activity_main.xml文件
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
//是不是R代码res,layout代码layouts文件夹,activity_mian代表文件的名字,大概是这样,自己去悟
      setContentView(R.layout.activity_main);
}

Manifest文件

这个文件是Android操作系统与你的应用程序之间的接口

1、要在应用程序项目根目录下的manifest.xml文件中声明所有的组件

意图过滤器的action被命名为android.intent.action.MAIN:这个活动被用做应用程序的入口。

意图过滤器的category被命名为android.intent.category.LAUNCHER:应用程序可通过设备启动器的图标来启动

strings.xml:包含应用使用到的all文本,按钮、标签的名字,默认文本、其他文本、及其他相似的strings

R文件:gen/com.example.helloworld/R.java活动文件,就像是MainActivity.java的和资源如strings.xml之间的胶水。这是一个自动生成的文件,不要修改R.java文件的内容,我怎么没有看到这个文件?貌似是上面几个文件的内容的一些东西

layout文件:当应用程序构建它的界面时被引用,修改这个文件来改变应用程序的布局

     TextView是一个Android的控件用于构建用户图形界面。它包含有许多不同的属性;

运行应用程序:

接入测试机,运行 over   ps:好强大的studio 

android资源访问

     需要关注各种资源:各种静态内容,如位图,颜色,布局定义,用户界面字符串,动画等,这些资源一般放置在项目的 res/ 下独立子目录中;

     学习如何来组织应用程序资源,指定替代资源,并在应用程序中访问它们

1、anim:定义动画属性的xml文件,被保存在res/anim文件夹下,荣R.anim类访问(这是个规律)

2、drawable图片文件,png ,jpg,gif、xml,被编译为位图 状态列表 现状 动画图片,保存在res/drawable文件夹下,通过R.drawable类访问,发现了么,路径和访问类不说了

3、layout:定义用户界面布局的xml文件

4、menu:定义应用程序菜单的xml文件,选项、上下文、子菜单等

5、raw:任意文件以它们的原始形式保存,需要据名为R.raw.filename的资源ID,调用resource.openRawResource来打开raw文件

6、values:包含简单值(如字符串,整数,颜色等)的XML文件。这里有一些文件夹下的资源命名规范。arrays.xml代表数组资源,通过R.array类访问;integers.xml代表整数资源,通过R.integer类访问;bools.xml代表布尔值资源,通过R.bool类访问;colors.xml代表颜色资源,通过R.color类访问;dimens.xml代表维度值,通过R.dimen类访问;strings.xml代表字符串资源,通过R.string类访问;styles.xml代表样式资源,通过R.style类访问

7、xml:通过调用Resources.getXML()来在运行时读取任意的XML文件。可以在这里保存运行时使用的各种配置文件

猜你喜欢

转载自blog.csdn.net/ma15732625261/article/details/81783369
今日推荐