Android App开发基础(1)—— App的开发特点

7 篇文章 1 订阅
订阅专栏

本文介绍基于Android系统的App开发常识,包括以下几个方面:App开发与其他软件开发有什么不一样,App工程是怎样的组织结构又是怎样配置的,App开发的前后端分离设计是如何运作实现的,App的活动页面是如何创建又是如何跳转的。

1 App的开发特点

1.1 App的运行环境

App是在手机上运行的一类应用软件,而应用软件依附于操作系统,无论电脑还是手机,刚开机都会显示桌面,这个桌面便是操作系统的工作台。个人电脑的操作系统主要有微软的Windows和苹果的MacOS,智能手机流行的操作系统也有两种,分别是安卓手机的Android和苹果手机的iOS。

Android Studio是谷歌官方推出的App开发环境,它提供了三种操作系统的安装包,分别是Windows、Mac和Linux。这就产生一个问题:开发者可以在电脑上安装Android Studio,并使用Android Studio开发App项目,但是编译出来的App在电脑上跑不起来。这种情况真是令人匪夷所思的,通常学习C语言、Java或者Python,都能在电脑的开发环境直接观看程序运行过程,就算是J2EE开发,也能在浏览器通过
网页观察程序的运行结果。可是安卓的App应用竟然没法在电脑上直接运行,那该怎样验证App的界面展示及其业务逻辑是否正确呢?

为了提供App开发的功能测试环境,一种办法是利用Android Studio创建内置的模拟器,然后启动内置模拟器,再在模拟器上运行App应用

另一种办法是使用真实手机测试App,该办法在实际开发中更为常见。由于模拟器本身跑在电脑上面,占用电脑的CPU和内存,会拖累电脑的运行速度;况且模拟器仅仅是模拟而已,无法完全验证App的所有功能,因此最终都得通过真机测试才行。
利用真机调试要求具备以下5个条件:

1.使用数据线把手机连到电脑上
手机的电源线拔掉插头就是数据线。数据线长方形的一端接到电脑的USB接口,即可完成手机与电脑的连接。

2.在电脑上安装手机的驱动程序
一般电脑会把手机当作USB存储设备一样安装驱动,大多数情况会自动安装成功。如果遇到少数情况安装失败,需要先安装手机助手,由助手软件下载并安装对应的手机驱动。

3.打开手机的开发者选项并启用USB调试
手机出厂后默认关闭开发者选项,需要开启开发者选项才能调试App。打开手机的设置菜单,进入**“系统”→“关于手机”→“版本信息”**页面,这里有好几个版本项,每个版本项都使劲点击七、八下,总会有某个版本点击后出现“你将开启开发者模式”的提示。继续点击该版本开启开发者模式,然后退出并重新进入设置页面,此时就能在“系统”菜单下找到“开发者选项”或“开发人员选项”了。进入“开发者选项”页面,启用“开发者选项”和“USB调试”两处开关,允许手机通过USB接口安装调试应用。

4.将连接的手机设为文件传输模式,并允许计算机进行USB调试
手机通过USB数据线连接电脑后,屏幕弹出如图所示的选择列表,请求选择某种USB连接方式。这里记得选中“传输文件”,因为充电模式不支持调试App
在这里插入图片描述

选完之后手机桌面弹出如图所示的确认窗口,提示开发者是否允许当前计算机进行USB调试。这里勾选“始终允许使用这台计算机进行调试”选项,再点击右下角的确定按钮,允许计算机在手机上调试App。
在这里插入图片描述
5.手机要能正常使用
锁屏状态下,Android Studio向手机安装App的行为可能会被拦截,所以要保证手机处于解锁状态,才能顺利通过电脑安装App到手机上。
经过以上步骤,总算具备通过电脑在手机上安装App的条件了。马上启动Android Studio,在顶部中央的执行区域看到已连接的手机信息,如图所示。此时的设备信息提示这是一台华为手机,单击手机名称右边的三角运行按钮,接下来就是等待Android Studio往手机上安装App了。
在这里插入图片描述

1.2 App的开发语言

基于安卓系统的App开发主要有两大技术路线,分别是原生开发和混合开发
原生开发指的是在移动平台上利用官方提供的编程语言(例如Java、Kotlin等)、开发工具包(SDK)、开发环境(Android Studio)进行App开发
混合开发指的是结合原生与H5技术开发混合应用,也就是将部分App页面改成内嵌的网页,这样无须升级App、只要覆盖服务器上的网页,即可动态更新App页面。

不管是原生开发还是混合开发,都要求掌握Android Studio的开发技能,因为混合开发本质上依赖于原生开发,如果没有原生开发的皮,哪里还有混合开发的毛呢?单就原生开发而言,又涉及多种编程语言,包括Java、Kotlin、C/C++、XML等,详细说明如下。

1.Java
Java是Android开发的主要编程语言,在创建新项目时,弹出如图所示的项目配置对话框,看见Language栏默认选择了Java,表示该项目采用Java编码。
在这里插入图片描述
2.Kotlin
Kotlin是谷歌官方力推的又一种编程语言,它与Java同样基于JVM(Java Virtual Machine,即Java虚拟机),且完全兼容Java语言。创建新项目时,在Language栏下拉可选择Kotlin,此时项目结构对话框如图所示。一旦在创建新项目时选定Kotlin,该项目就会自动加载Kotlin插件,并将Kotlin作为默认的编程语言。
在这里插入图片描述
3.C/C++
不管是Java还是Kotlin,它们都属于解释型语言,这类语言在运行之时才将程序翻译成机器语言,故而执行效率偏低。虽然现在手机配置越来越高,大多数场景的App运行都很流畅,但是涉及图像与音视频处理等复杂运算的场合,解释型语言的性能瓶颈便暴露出来。

编译型语言在首次编译时就将代码编译为机器语言,后续运行无须重新编译,直接使用之前的编译文件即可,因此执行效率比解释型语言高。C/C++正是编译型语言的代表,它能够有效弥补解释型语言的性能缺憾,借助于JNI技术(Java Native Interface,即Java原生接口),Java代码允许调用C/C++编写的程序。事实上,Android的SDK开发包内部定义了许多JNI接口,包括图像读写在内的底层代码均由C/C++编写,再由外部通过封装好的Java方法调用。

不过Android系统的JNI编程属于高级开发内容,初学者无须关注JNI开发,也不要求掌握C/C++。

4.XML
XML全称为Extensible Markup Language,即可扩展标记语言,严格地说,XML并非编程语言,只是一种标记语言。它类似于HTML,利用各种标签表达页面元素,以及各元素之间的层级关系及其排列组合。每个XML标签都是独立的控件对象,标签内部的属性以“android:”打头,表示这是标准的安卓属性,各属性分别代表控件的某种规格。比如下面是以XML书写的文本控件:

<TextView
android:id="@+id/hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />

上面的标签名称为TextView,翻译过来叫文本视图,该标签携带4个属性,说明如下:

  • id:控件的编号。
  • layout_width:控件的布局宽度,wrap_content表示刚好包住该控件的内容。
  • layout_height:控件的布局高度,wrap_content表示刚好包住该控件的内容。
  • text:控件的文本,也就是文本视图要显示什么文字。

综合起来,以上XML代码所表达的意思为:这是一个名为hello的文本视图,显示的文字内容是“Hello
World!”,它的宽度和高度都要刚好包住这些文字。

1.3 App连接的数据库

在学习Java编程的时候,基本会学到数据库操作,通过JDBC连接数据库进行记录的增删改查,这个数据库可能是MySQL,也可能是Oracle,还可能是SQL Server。然而手机应用不能直接操作上述几种数据库,因为数据库软件也得像应用软件那样安装到操作系统上,比如MySQL提供了Windows系统的安装包,也提供了Linux系统的安装包,可是它没有提供Android系统的安装包呢,所以MySQL没法在Android系统上安装,手机里面的App也就不能直连MySQL。

既然MySQL、Oracle这些企业数据库无法在手机安装,那么App怎样管理业务方面的数据记录呢?其实Android早已内置了专门的数据库名为SQLite,它遵循关系数据库的设计理念,SQL语法类似于MySQL。不同之处在于,SQLite无须单独安装,因为它内嵌到应用进程当中,所以App无须配置连接信息,即可直接对其增删改查。由于SQLite嵌入到应用程序,省去了配置数据库服务器的开销,因此它又被归类为嵌入式数据库。

可是SQLite的数据库文件保存在手机上,开发者拿不到用户的手机,又该如何获取App存储的业务数据?比如用户的注册信息、用户的购物记录,等等。如果像Java Web那样,业务数据统一保存在后端的数据库服务器,开发者只要登录数据库服务器,就能方便地查询导出需要的记录信息。

手机端的App,连同程序代码及其内置的嵌入式数据库,其实是个又独立又完整的程序实体,它只负责手机上的用户交互与信息处理,该实体被称作客户端。而后端的Java Web服务,包括Web代码和数据库服务器,同样构成另一个单独运行的程序实体,它只负责后台的业务逻辑与数据库操作,该实体被称作服务端。客户端与服务端之前通过HTTP接口通信,每当客户端觉得需要把信息发给服务端,或者需要从服务端获取信息时,客户端便向服务端发起HTTP请求,服务端收到客户端的请求之后,根据规则完成数据处理,并将处理结果返回给客户端。这样客户端经由HTTP接口并借服务端之手,方能间接读写后端的数据库服务器(如MySQL),具体的信息交互过程如图所示。
在这里插入图片描述
由此看来,一个具备用户管理功能的App系统,实际上并不单单只是手机上的一个应用,还包括与其对
应的Java Web服务

手机里的客户端App,面向的是手机用户,App与用户之间通过手机屏幕交互;而后端的服务程序,面向的是手机App,客户端与服务端之间通过HTTP接口交互。客户端和服务端这种多对一的架构关系如图所示。

在这里插入图片描述
本章节其他文章
本章节其他文章
Android App开发基础(1)—— App的开发特点
Android App开发基础(2)—— App的工程结构
Android App开发基础(3)—— App的设计规范

本笔记参考于[B站动脑学院],仅作学习用途,方便随时查看。 参考资料: 2022 最新 Android
基础教程,从开发入门到项目实战,看它就够了,更新中

Android应用架构 — 从MVC到MVVM,基于androidapp开发
m0_66264134的博客
01-21 1135
角色划分 Model: 用来保存程序的数据状态,比如数据存储,网络请求等。 View: GUI组件构成,向用户展示Model中的数据。 Controller: 连接用户和系统,响应交互,传递数据。 解决的问题 MVC最重要的目的并不是规定各个模块应该如何交互和联系,而是将原有的混乱的应用程序划分出合理的层级,把以往一团混乱的代码,按照展示层和领域层分成两个部分。这种分离使得位于领域层中的领域对象可以不需要对展示层有任何了解,因此可以同时为不同的展示层工作,从而初步的实现了领域层与展示层的解耦。 缺点 .
android日程管理安卓APP开发
09-29
android日程管理源码介绍:代码风格非常,思路清晰对于阅读者来说是一份好android源代码。
基于Androidapp开发
06-22
使用Android语言开发Android手机使用的app家庭理财通
android开发技术特点,Android(安卓)应用开发技术 Android(安卓)应用开发技术 Service的特点和创建.pptx...
weixin_33577842的博客
05-31 637
学习目标Service的概念什么是Service?Service(服务)是Android系统中4大组件之一。通过启动一个Service,可以在不显示界面的前提下在后台运行指定的任务,这样可以不影响用户做其他事情。一般使用Service为应用程序提供一些服务,或不需要界面的功能,例如,从Internet下载文件、控制Video播放器等。。Service的特点什么情况下使用Service?Servic...
基于android开发app
11-12
基于android开发app
APP应用开发Android
最新发布
Azhhhw的博客
06-11 2643
图一图二。
android应用开发app设计小游戏————华容道
10-09
本项目"android应用开发app设计小游戏——华容道"就是这样一个实例,它旨在让开发者对手机移动开发有初步的理解,并通过实现中国古老的游戏——华容道,锻炼其编程能力。 华容道游戏是一款策略性的棋盘游戏,源自...
Android 4.X 开发完全上手——手把手构建完整Android App范例.rar
01-06
Android 4.X 开发完全上手——手把手构建完整Android App范例》是一本针对初学者和进阶开发者深入浅出的Android应用开发指南。该压缩包文件包含的源代码资源,旨在帮助读者通过实践操作,理解并掌握Android 4.X...
基于Android的美食APP设计与实现——以桂林美食APP为例.pdf
08-26
基于 Android 的美食 APP 设计与实现——以桂林美食 APP 为例 本文旨在设计和实现一个基于 Android 的美食应用程序,以桂林美食 APP 为例。随着信息技术的发展,人们可以通过网络信息资源满足多种需求。桂林是一座...
景点攻略APP设计与开发——以雨花台为例.pdf
08-26
2. **百度地图Android SDK和定位SDK**:在APP开发过程中,开发者调用了这两个接口,实现了地图显示和实时定位功能。百度地图Android SDK提供了地图展示、路线规划等功能,定位SDK则用于获取用户的位置信息,为导航...
基于Android系统的校园助手应用程序开发
07-09
本程序是为毕业设计做的一个Android校园助手应用程序,其中包括课程表、记事本、计算器以及小应用等模块。目前发布的为本应用程序的源码。
基于Android的运动APP设计与实现
03-04
本文给出了详细的软件设计过程、部分界面图及主要功能运行流程图,本文还对高度过程中遇到的问题和解决方法进行了详细的讨论,该运动APP集计时,秒表,心跳速率,统计步数等功能于一体,性能良好,在Android系统中能独立运行。
Android基础入门教程——1.2.1 使用Eclipse + ADT + SDK开发Android APP-附件资源
03-05
Android基础入门教程——1.2.1 使用Eclipse + ADT + SDK开发Android APP-附件资源
基于androidapp开发_Android App完整开发流程
weixin_39779530的博客
12-13 5748
————↑点击蓝色字关注我 ————Android App完整开发流程前言宅在家里躺在床上为国家“做贡献”,这是2020年送给所有人的一大礼物。好多人不敢奢想继续这种不踏实的日子,但一次次的延迟上班,有些人继续“贡献”着自己,有人陆陆续续复工,也有人在战役失去了公司(公司倒闭)。但是,作为讲师,我们可以继续为学生在线直播课程,让我们不再感到“拿了钱不出力”的“委屈”。由于工...
基于Android的学生管理系统App设计与实现(Eclipse开发
毕业作品网站
11-30 5533
学生信息管理及沟通系统是一个学校不可缺少的一部分,它的内容对于学校的管理来说是至关重要的,因此,学生信息管理及沟通系统应该能够为用户提供充足人事管理的信息和查询手段,但一直以来人们使用传统的人工方式管理信息,这种管理方式存在着许多缺点,诸如效率低,保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。此外,也允许学生,教师查看信息,及时的了解学校的动态。管理员界面实现:查询学生信息,查询老师信息,录入学生成绩并可查询,添加教师,学生用户,发布公告,安排考试,课程管理。
Android App 开发基础
qq_53450254的博客
06-15 2362
Android App 开发基础
Android App开发基础
缘友一世的博客
02-16 6052
App开发特点 1.1 App的运行环境 1.2 App开发语言 1.3 java语言开发 1.4 Kotlin语言开发 1.5 XML 1.6 App连接的数据库 二 App的工程结构 2.1 App工程目录结构 2.2 构建工具Grade 2.3 编译配置文件build.gradle 2.4 运行配置文件AndroidManifest.xml 2.4.1 application 2.4.2 activity 三 App的设计规范 3.1 界面设计与代码逻辑 3.2 完整的页面创建过程包括三个步骤:
基于Android StudioAndroid app开发环境搭建
MyLinChi的博客
06-20 5979
前言:本环境搭建教程写给新手小白,大神请绕道。Android本质上就是一个嵌入式系统,因此也具备了嵌入式系统的跨平台,交叉编译等特点。凡是涉及到交叉编译的软件开发,环境的搭建从来就不是小事。如果读者观看前些年讲解android开发的相关视频教程,发现里面用的都是清一色的eclipse。eclispe是一个开放多功能的IDE,只要装上插件就可以开发具体情境的应用程序(如基于arm的裸机程序,基于DS...
局域网即时通讯APP开发实践——基于Android平台
1. Android开发基础: 本资源标题中提到的“Android即时通讯APP程序”表明所涉及的知识点首先包括Android应用开发基础Android是Google开发的一个基于Linux的开源操作系统,专为移动设备设计。开发者需要熟悉Java...
写文章

热门文章

  • 4_Python的字符串:创建、下标、切片和常见操作 2433
  • 5_ Python的列表:创建、访问和常见操作 2310
  • JavaWeb基础入门——MySQL数据库安装配置教程 2075
  • IntelliJ IDEA中配置Tomcat 1899
  • Android App开发基础(1)—— App的开发特点 1855

分类专栏

  • Java修炼之路 6篇
  • 王道-数据结构 2篇
  • Android开发修炼之路 7篇
  • JavaWeb基础入门 11篇
  • Python初学者入门指南 9篇

最新评论

  • Java开发入门实战(三)JDK安装与环境配置

    CSDN-Ada助手: 恭喜你写了第20篇博客!看到你持续不断地分享Java开发的实战经验,真的很受启发。对于JDK安装与环境配置这一主题,你的讲解很清晰易懂,让我受益匪浅。 希望你能继续坚持写作,分享更多关于Java开发的实战经验,比如常见问题的解决方法、实用技巧等等。也可以考虑加入一些实际的案例分析,让读者更好地理解和运用所学知识。期待你的下一篇文章!

  • Java开发入门实战(一)计算机基本概念与DOC命令

    CSDN-Ada助手: 恭喜你写了第18篇博客,内容非常实用!对于初学者来说,了解计算机基本概念和DOC命令是非常重要的。希望你可以继续分享更多关于Java开发入门实战方面的内容,比如常见的编程语法、实际项目案例等。期待你的下一篇博客!不过我也知道,写作需要花费很多时间和精力,所以希望你保持身心健康,不要过度劳累。加油!

  • Java开发入门实战(二)Java语言发展史

    CSDN-Ada助手: 非常感谢您的第19篇博客,标题为“Java开发入门实战(二)Java语言发展史”。恭喜您继续坚持创作,分享有关Java开发的知识和经验。对于初学者来说,了解Java语言的发展历史非常重要,这将帮助他们更好地理解和应用Java的现状和特性。 接下来,我谨提供一些建议,希望能对您的下一步创作有所帮助。首先,您可以考虑深入探讨Java语言的实际应用场景,例如Web开发、移动应用开发等。这将有助于读者更加直观地理解Java在实际项目中的应用。另外,您还可以介绍一些常用的Java开发工具和框架,以及它们在项目开发中的作用和优势。 再次感谢您的分享,期待您的下一篇博客!请继续保持这种谦虚的态度,让我们一起在Java开发领域不断进步。

  • JavaWeb基础入门——(三)JDBC入门案例

    CSDN-Ada助手: 恭喜博主对JavaWeb基础知识的持续分享,文章内容清晰易懂,让我对JDBC入门有了更深入的了解。希望博主能够继续分享更多实用的案例和经验,或许可以考虑结合实际项目经验,分享一些实战经验和技巧,让读者能够更好地应用到实际开发中。谢谢博主的辛勤付出,期待更多精彩的内容!

  • JavaWeb基础入门——MySQL数据库安装配置教程

    CSDN-Ada助手: 恭喜您写了第17篇博客!标题中的MySQL数据库安装配置教程听起来很有用!看来您对JavaWeb基础入门领域有着深入的了解。继续创作博客可以帮助更多的读者,我建议您在下一篇博客中可以探讨一些与MySQL数据库相关的高级用法或者实际应用案例,这样读者可以更好地理解和应用您的教程。再次恭喜您,并期待您的下一篇博客!

大家在看

  • IEC104规约的秘密之十五----文件传输慢的原因
  • 云网络验证系统云验证+卡密生成+多应用多用户管理
  • SOLID - 开放封闭原则 (Open/Closed Principle)
  • JAVA继承 638
  • ssm+vue的医药垃圾分类管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。 410

最新文章

  • 数据库 mysql 的彻底卸载
  • 【数据结构】第一章 绪论(2)
  • 【数据结构】第一章 绪论(1)
2024年26篇
2023年9篇
2022年2篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家玻璃钢校园公仔雕塑玻璃钢芹菜雕塑玻璃钢花盆前景怎样南通商场春季美陈玻璃钢吉祥物卡通雕塑价格春节商场美陈ppt玻璃钢孔子雕塑定做梅州透明玻璃钢雕塑生产商西宁广场玻璃钢雕塑定做成都大型玻璃钢雕塑东营市玻璃钢雕塑定制长沙景区玻璃钢雕塑设计北京户内玻璃钢雕塑多少钱惠州玻璃钢雕塑公司官网大型玻璃钢雕塑哪个好用无锡玻璃钢花盆花器铜川玻璃钢伟人像雕塑常用玻璃钢花盆费用北京特色商场美陈费用商场dp点美陈用什么材质阳江玻璃钢麋鹿雕塑周口校园玻璃钢景观雕塑小品北京大型商场美陈批发乌海玻璃钢胸像雕塑浙江玻璃钢金属雕塑价格银川玻璃钢浮雕雕塑北京大型主题商场美陈市场河北玻璃钢景观雕塑制作周口校园玻璃钢景观雕塑定做价格工业玻璃钢雕塑摆件多少钱香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化