Android基础开发
<h1 id="android基础开发">Android基础开发</h1><h2 id="ch01-android简介与环境搭建">CH01 Android简介与环境搭建</h2>
<p><strong>Android软件结构层次:</strong></p>
<ul>
<li>(1)Linux内核层相关驱动,C</li>
<li>(2)核心类库(Libaries)和运行时环境(Runtime),C\C++</li>
<li>(3)应用程序框架(Application Framework),Java,系统服务API</li>
<li>(4)应用程序(Application),Java</li>
</ul>
<h5 id="逐层介绍">逐层介绍:</h5>
<ol>
<li>Linux内核层<br>
(1)硬件和其他软件堆层之间的一个抽象隔离层<br>
(2)提供安全机制、内存管理、进程管理、网络协议堆栈和驱动程序等核心系统服务<br>
2.核心类库和运行时环境层</li>
</ol>
<ul>
<li>核心类库:由核心运行库和Android运行时环境构成函数库,主要提供一组基于C/C++的函数库<br>
(1)Surface Manager,提供应用程序的2D、3D图像层的平滑连接<br>
(2)Media Framework,实现音视频的播放和录制功能<br>
(3)SQLite,轻量级的关系数据库引擎<br>
(4)OpenGL ES,基于3D图像加速<br>
(5)FreeType,位图与矢量字体渲染<br>
(6)WebKit,Web浏览器引擎<br>
(7)SGL,2D图像引擎<br>
(8)SSL,数据加密与安全传输的函数库<br>
(9)Libc,标准C运行库,Linux系统中底层应用程序开发接口</li>
<li>Android运行时环境<br>
(1)核心库,提供Android系统特有函数功能和Java语言函数功能<br>
(2)Dalvik虚拟机,实现基于Linux内核的线程管理和内存管理<br>
(3)Android5.0开始,ART取代了Dalvik虚拟机</li>
</ul>
<p>3.应用程序框架层</p>
<ul>
<li>提供Android平台基本的管理功能和组件重用机制</li>
</ul>
<blockquote>
<ol>
<li>Activity Manager,管理应用程序的生命周期</li>
<li>Windows Manager,启动应用程序的窗体</li>
<li>Content Provider,共享私有数据,实现跨进程的数据访问</li>
<li>Package Manager,管理安装在Android系统内的应用程序</li>
<li>Telephony Manager,管理与博大和接听电话的相关功能</li>
<li>Resource Manager,允许应用程序使用非代码资源</li>
<li>Location Manager,管理与地图相关的服务功能</li>
<li>Notification Manager,允许应用程序在状态栏中显示提示信息</li>
</ol>
</blockquote>
<ul>
<li>提供一系列的核心应用程序,包括电子邮件客户端、浏览器、通讯录和日历等。</li>
</ul>
<h2 id="第一个android程序">第一个Android程序</h2>
<p><strong>一、Android Studio视图:</strong></p>
<ul>
<li>Android视图:</li>
</ul>
<blockquote>
<p>(1)列出一个工程的常用文件夹<br>
(2)Gradle文件单独列出,方便修改,推荐使用<br>
<img src="https://img2020.cnblogs.com/blog/2227809/202011/2227809-20201130112241667-404372270.png" alt="" loading="lazy"></p>
</blockquote>
<ul>
<li>Project视图</li>
</ul>
<blockquote>
<p>(1)以Project为根目录列出<br>
(2)一般的工程常用的是一个app模块<br>
(3)可看到工程中所有文件<br>
<img src="https://img2020.cnblogs.com/blog/2227809/202011/2227809-20201130112308859-1725961892.png" alt="" loading="lazy"></p>
</blockquote>
<ul>
<li>Packages视图</li>
</ul>
<blockquote>
<p>(1)以包为单位列出所有的源代码及资源<br>
<img src="https://img2020.cnblogs.com/blog/2227809/202011/2227809-20201130112333091-59438613.png" alt="" loading="lazy"></p>
</blockquote>
<p><strong>二、Android程序结构</strong></p>
<ol>
<li>
<p>Java目录是源代码目录,所有的Java文件都保存在此目录</p>
</li>
<li>
<p>Activity VS AppCompatActivity<br>
(1)在早期的Eclipse环境中,默认继承Activity<br>
(2)在最新的AS环境中,API Level>19时,默认继承AppCompatActivity<br>
(3)MainActivity.java</p>
</li>
<li>
<p>build目录用来保存编译后自动生成的文件,例如:R.java或AIDL文件</p>
</li>
<li>
<p>R.java文件是自动生成的文件,包含对drawable、layout和values目录内的资源的引用ID,Android程序能够直接通过R类引用目录中的资源。<br>
(1)R.java文件不能手工修改,如果资源目录中增加了资源文件后会自动添加<br>
(2)R.java文件在AS中默认不可见</p>
</li>
<li>
<p><strong>res:</strong>目录中存储工程的所有资源</p>
</li>
</ol>
<blockquote>
<ul>
<li>drawable:图片资源</li>
<li>layout:布局资源</li>
<li>mipmap:图片资源</li>
<li>values:常量配置资源</li>
</ul>
<blockquote>
<ul>
<li>colors:颜色</li>
<li>dimems:距离,长度</li>
<li>strings:字符常量</li>
<li>sytles:主题,样式<br>
<img src="https://img2020.cnblogs.com/blog/2227809/202011/2227809-20201130141736049-1330230959.png" alt="" loading="lazy"></li>
</ul>
</blockquote>
</blockquote>
<ol start="6">
<li>各个文件含义解析</li>
</ol>
<ul>
<li><strong>main.xml</strong></li>
<li><strong>string.xml:</strong>文件定义项目中用到的字符串常量</li>
<li><strong>AndroidManifest.xml:</strong>是XML格式的Android程序声明文件,包含了运行Android程序的重要信息,这些信息包含应用程序名称、图标、包名称、模块组成、授权和SDK最低版本等。(每个Android程序必须包含一个AndroidManifest.xml文件)</li>
</ul>
<blockquote>
<ul>
<li>AndroidManifest.xml文件的根元素是manifest,子属性包括xmlns:android、package、android:versionCode和android:versionName等</li>
</ul>
<blockquote>
<ol>
<li>xmlns:android定义了Android的命名空间</li>
<li>package定义了应用程序的包名称<br>
3.android:versionCode定义了应用程序的版本号,是一个整数值,数值越大说明版本越新,但仅在程序内部使用,并不是字符串,仅限于为用户提供一个版本标识<br>
4.manifest元素仅能包含一个application元素,application元素中能够声明Android程序中最重要的四个组成部分,包括Activity、Service、BroadcastReceiver和ContentProvider,所定义的属性将影响所有组成部分。</li>
</ol>
<blockquote>
<p>(1)属性android:icon定义了Android应用程序的图标,其中@mipmap/ic launcher是一种资源引用方式,表示资源类型是图像,资源名称为ic launcher,对应的资源文件为res/mipmap目录下的ic_launcher.png<br>
(2)属性android:label则定义了Android应用程序的标签名称。</p>
</blockquote>
<ol start="5">
<li>activity元素是对Activity子类的声明,必须在AndroidManifest.xml文件中声明的Activity才能在用户界面中显示</li>
</ol>
<blockquote>
<p>(1)属性android:name定义了实现Activity类的名称,可以是完整的类名称,也可以是简化后的类名称。<br>
(2)属性android:label则定义了Activity的标签名称,标签名称将在用户界面的Activity上部显示,@string/app_name属于资源引用,表示资源类型是字符串,资源名称为app_name,资源保存在res/values目录下的strings.xml文件中。</p>
</blockquote>
</blockquote>
</blockquote>
<ol start="7">
<li>intent-filter中声明了两个子元素action和category,intent-filter使程序在启动时,将MainActivity这个Activity作为默认启动模块。</li>
</ol>
<h2 id="ch02-android用户界面基础">CH02 Android用户界面基础</h2>
<h3 id="android四大基本组件">Android四大基本组件</h3>
<p><strong>Android四大基本组件:</strong><br>
<img src="https://img2020.cnblogs.com/blog/2227809/202012/2227809-20201202171518786-2066387890.png" alt="" loading="lazy"><br>
<strong>活动(Activity)</strong><br>
Activity是最基本的Android应用程序组件,应用程序中,一个Activity通常就是一个单独的屏幕。每个Activity都被实现为一个独立的类,并且从Activity类继承而来,Activity类会提供<strong>视图控制组件</strong>的用户接口,并对事件作出相应,大多数应用程序都是由多个Activity组成的。</p><br><br>
来源:https://www.cnblogs.com/fairy-mr/p/14060049.html
頁:
[1]