当前位置: 首页 > news >正文

app开发——安卓native开发思路记录

我们知道app开发目前有三种方式,第一种是webapp,第二种是hybird app,第三种是native app。

而native-app就是安卓原生app,这里记录一下安卓原生开发的基本思路。

首先,安卓原生开发虽然在当今时代不是那么常见了,但由于其执行效率和更加强大的功能,所以还是有一定的市场。而且基于webapp的功能限制等原因,hybird app成为主流,但hybird app的开发还是离不开app的native。

从技术角度来说,不论是做游戏开发,web开发,app开发,亦或者其它开发等,基本上都是使用一些大厂或组织提供的sdk进行开发,这也是api工程师的由来,当然这里也有不要重复造轮子的原因。所以对大多数程序员来说,能够熟练使用各种sdk ,并且能够明白其中的运行原理,基本上已经属于技术大牛了。

无论是做什么开发,最重要的永远有两点,第一是功能,第二是用户体验——也就是所谓的交互。

web开发中分为前后端,后端处理主要逻辑,前端在完成功能的基础上,主要就是做好交互问题;而app开发中也是一样,所以学习app开发主要也是分为两部分,第一是功能,第二是交互。

所以,安卓sdk中提供了很多交互用的ui控件,比如显示框,按钮,输入框,进度条,图片等;而这些控件在页面上显示要有一定的布局格式,所以安卓也提供了好几种布局模板——layout。

下面是几种常见布局:

线性布局——LinearLayout

表格布局——TableLayout

相对布局——RelativeLayout

层布局——FrameLayout

在安卓中,页面主要由activity来控制,一个activity对应一个app页面,在activity中完成页面需要执行的逻辑,比如按钮的点击事件,获取输入控件的输入内容等。

而安卓页面的实现是通过xml文件来配置的,也就是说每个activity可以绑定一个页面配置的xml文件。

而在安卓中,这些与页面有关的所有东西都叫做资源,用实体R来表示。包括页面配置的xml文件,图片,按钮的高宽,控件的样式等都可以作为资源来使用。

当然,随着技术的发展,安卓官方提供了一种新的ui组件,jetpack compose,可以不使用xml文件来实现页面的布局。

所以,安卓开发同样适用于web开发中的三层模型,表现层——View,业务逻辑层——Service和数据访问层——DAO。在安卓开发中,业务逻辑主要也是在service中实现。

而app要完成复杂的业务功能,那么在官方提供的sdk的前提下,也可以引入一些第三方的sdk库,来完成需要的功能,比如需要使用地图,就可以调用百度地图,高德地图的sdk来实现。

最后,目前安卓开发中,其主要开发语言改为了kotlin,而不是之前的java,当然kotlin完全兼容了java语言,也可以继续使用java作为安卓的开发语言。

http://www.lryc.cn/news/280685.html

相关文章:

  • 黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(1)准备工作、部门管理
  • C# .NET SQL sugar中 IsAny进行根据条件判断数据是否存在 IsAny的使用
  • 《Git学习笔记:Git入门 常用命令》
  • 小程序跳转安卓会跳转两次 iOS不会的解决方案
  • vue3+ts 中实现压缩图片、blob 转 base64
  • (框架设计-基础库建设) boost 库
  • 将ResultSet转实体类
  • Web后端开发
  • CAN201 计网概念收集
  • 【占用网络】FlashOcc:快速、易部署的占用预测模型
  • 239.【2023年华为OD机试真题(C卷)】求幸存者之和(模拟跳数-JavaPythonC++JS实现)
  • Pytorch中的标准维度顺序
  • Nginx的安装配置和使用
  • P1643 完美数 题解
  • docker一键安装
  • 模板管理支持批量操作,DataEase开源数据可视化分析平台v2.2.0发布
  • 阿里云实时计算企业级状态存储引擎 Gemini 技术解读
  • web缓存之nginx缓存
  • 【用法总结】无障碍AccessibilityService
  • AI绘画风格化实战
  • 008定点小数、奇偶校验码
  • 一、二进制方式 安装部署K8S
  • 【simple-admin】FMS模块如何快速接入阿里云oss 腾讯云cos 服务 实现快速上传文件功能落地
  • 数据结构.线性表(2)
  • 【计算机网络】TCP原理 | 可靠性机制分析(三)
  • 【昕宝爸爸小模块】线程的几种状态,状态之间怎样流转
  • ChatGPT网站小蜜蜂AI更新了
  • 瑞_Java开发手册_(二)异常日志
  • Elasticsearch:Search tutorial - 使用 Python 进行搜索 (四)
  • Python之Matplotlib绘图调节清晰度