Android学习笔记(一)Android系统的基本介绍及工程简介
Android系统的简介(来自于百度百科)
Android系统的层次
Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。
应用程序框架包括
- l 丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons), 甚至可嵌入的web浏览器。
- l 内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据
- l 资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。
- l 通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。
- l 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。
系统运行库
Android 包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库:
- l 系统 C 库 一个从BSD继承来的标准C系统函数库 Libc ), 它是专门为基于Embedded linux的设备定制的。
- l 媒体库 基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。
- l Surface Manager 对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。
- l LibWebCore 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。
Android开发组件
Android开发四大组件分别是:
- l 活动(Activity): 用于表现功能。
- l 服务(Service): 后台运行服务,不提供界面呈现。
- l 广播接收器(BroadcastReceiver):用于接收广播。
- l 内容提供商(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。
工程项目结构
新建了一个Android的项目,其文件结构如下
与往常看惯的VS解决方案管理器看到的不同,VS里面的视图文件和后台代码文件以树状结构显示呈现其从属关系。无论是其他类还是视图类的都可以任意放置,项目里面有几个固有的特殊文件夹(引用,资源等)。但在Java的项目中,视图文件与后台代码文件放置的位置比较离散。
src文件夹
这个文件夹放的都是各个类的代码,包括了界面的后台代码。
gen文件夹
这个文件夹放的最重要的一个文件就是R.java。这个文件存放着所有界面控件的id值,图片资源值,视图文件等等一系列资源。
libs文件夹
这里存放的是项目中引用的包,这个估计就类似于引用文件夹,里面放的是dll文件。
res文件夹
res感觉就像一个资源文件夹,不过里面又有视图文件存在的话,又不太像,但是转一个方式去思考,视图的配置获取也算是一种资源。Res文件夹下面还有各种类型的子文件夹
- drawable存放的是项目中使用到的图片,区别在于尺寸不同而已。
- layou存放的就是项目中的视图文件
- menu存放的就是项目中菜单文件
- values存放的是项目里面用到的字符串资源,样式资源等。
AndroidManifest.xml文件
项目中还有一个相当重要的文件AndroidManifest.xml,这个文件包含了activity(行为)、view(视图)、service(服务)之类的信息。但现时能看到的信息只局限在application节点中。Application的属性定义了整个项目的主题,程序名,图标等。它是子节点activity则是程序中所运用到的视图,android:name属性存放着视图的类的完全限定名。带有一下子节点的activity节点只能有一个
1 <intent-filter> 2 <action android:name="android.intent.action.MAIN" /> 3 4 <category android:name="android.intent.category.LAUNCHER" /> 5 </intent-filter>
它所在的activity表明它就是应用程序最开始进入的页面。
在Android中感觉视图文件与后台代码文件是不同级别的,在.NET中感觉视图文件和后台代码文件是同等重要的,视图文件既需要代码文件,代码文件也需要视图文件。但在Android中感觉并非这样,代码文件才是主要的。它在onCreate的时候调用了setContentView方法。才决定这个页面会真正的用那个布局呈现出来,感觉就比较松散。所以视图文件放到资源文件夹res里面也是有道理的。
学习Android,学习Java我自己觉得挺意外的,貌似是生活所逼,不过心里面的还是.NET,还是C#。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步