APP 快速开发教程(安卓)

2023-11-06

前言

本篇博客从开发的角度来介绍如何开发一个Android App,需要说明一点是,这里只是提供一个如何开发一个app的思路,并不会介绍很多技术上的细节,从整个大局去把握如何去构思一个app的开发,让你对独立开发一款app的时候有个理解,如果有说的不对的地方,欢迎大家拍砖留言讨论。

开发环境

Android应用层使用的开发语言是Java,自然需要用到Java运行环境,无论你在Window是系统还是Mac系统都需要安装JDK,并且配置它的环境变量,不懂什么叫环境变量的或者不知道怎么配的,请利用好自己的百度技能自行学习。

JDK下载

开发工具

开发工具,Android因为历史原因,前面很长一段时间使用的是Eclipse,我们要开发Android应用的时候需要另外安装Google为它开发的插件ADT,Eclipse这个开源软件很优秀,也很专业,但仅仅只是使用它来开发Android就显得有点鸡肋了,如果没有对Eclipse进行优化的话,会很卡很卡,后面Google实在不愿意寄人篱下,就专门为我们开发者开发了目前很受广大开发者推崇的Android Studio,现在2.0预览版也出来啦,大伙赶紧去下吧。

Android studio

模拟器

Android自带的模拟器一直广受诟病,实在是太卡太慢了,对比人家IOS模拟器是那么的流畅,Android开发者直喊好苦逼啊,不过还好后面出了第三方比原生流畅n倍的模拟器Genymotion,大家可以去下一个个人版的够你平时开发测试用了。最好的办法还是使用真机测试,毕竟真机才是真实的环境。

Genymotion

Android核心基础

前面是准备工作,想开发一款Android app,你最起码要掌握Android的核心基础知识,针对初学Android的童鞋,想一口吃掉一个胖子是不可能的,还是得把基础打牢之后才能完成独立的开发,Android入门不难,学完基础你只是具备开发app的基本条件,想做一个优秀的app还有很长一段路要走,经验是靠不断实践堆出来的,找一套系统的课程去认真学习一下,在线教育的资源很多,比如慕课网,极客学院都有很多不错的学习资源,童鞋自己择优来学习即可。

推广:http://edu.csdn.net/course/detail/545(笔者的课程)

产品开发流程

正常的互联网开发app的流程大致如下:

  • 产品规划,定产品方向
  • 需求调研,产出需求文档
  • 需求评审,修订需求文档
  • 产品狗画app线框图提供给射鸡师
  • 射鸡师根据线框图设计视觉稿
  • 程序猿根据视觉稿搭建UI框架
  • 程序猿根据需求文档开发功能
  • 测试媛编写测试用例,根据排期进行测试
  • 程序猿修复回归测试反馈的bug,提交beta版
  • 测试通过,提交给运营喵发布到渠道上线

上面是笔者的经验总结,可能有不太准确的地方,但大致整个流程是这样,我们开发者要清楚自己在整个产品中充当的角色,明白自己的工作职责即可。

快速搭建项目

Android比没有想象那么难,只是刚开始要学习的东西多,一下子消化不了才会比较茫然,笔者写这篇博客就是想帮助大家整理一下开发思路。

快速搭建项目也算是一项技能,而这项技能只能由你自己来完善,刚开始做开发的时候一定会有很多重复性的工作,如果没有意识去提高自己的开发效率的话,可能你的十年工作经验代表的只是一年的经验用了十年而已。

那要怎么做,笔者提供一个自己总结的,仅供参考:

  • 定开发规范
  • 搭建UI框架
  • 选用开发库集成(或自造轮子)
  • 第三方服务集成(视情况而定)

定开发规范

一个项目一般不会只有一个人独立开发,就算是独立开发,我们也应该定一下开发规范,一般会有什么样的规范?

  • 命名规范
  • 代码规范
  • 代码管理规范

命名规范

命名规范包括:

  • 项目命名
  • 包命名
  • 类命名、成员变量命名
  • 资源文件命名
    我们做每一个产品都会有相应的命名,不要用中文来命名,最好用能表达中文意思的英文来表示,例如CSDN客户端,可以用CSDNClient作为命名,我们创建项目的时候可以以它作为Application name。
    可以看看以前写的这篇文章:
    http://blog.csdn.net/wwj_748/article/details/42347283

代码规范

代码规范视语言而定,开发android使用的是Java,自然要按照Java的编码规范进行编码,比如命名采用驼峰命名法,编码的时候也要符合Android的开发规范,比如UI线程不做任何耗时的操作,像网络请求、数据库操作都需要放到子线程中去做,只有UI的刷新才在UI线程中做,像这些规范,可以根据自身在项目遇到的问题来定,定规范的好处就是减少踩坑的几率,提高开发的质量。

代码管理

对于一个经常更新迭代的产品,不可能由头到尾不变,这个时候我们需要对代码进行分支管理,最好使用git代码仓库对代码进行管理,作为一个合格的开发者连git都不用实在说不过去,还用svn的童鞋赶紧放弃它投入git的怀抱,它的好处是不言而喻的,自己去体会。

搭建UI框架

搭建UI框架需要我们根据产品的导航模式来设计,市场上常用的导航模式有如下图几种:

app导航

我们的app如果不出意外一定是其中的一种导航模式,一般线框图出来我们就应该知道即将要开发的app长什么样子,开发者不必等视觉稿和素材出来才开始动工,我们先大致搭个架子,等视觉稿出来之后我们再做调整。

选用开发库

一般我们app涉及到的库会有:

  • UI框架(比如下拉刷新PullToRefresh、侧滑菜单Slidingmenu)
  • 网络请求库(比如okhtttp、AndroidAsyncHttp、Volley)
  • 数据操作库(比如GreenDao、Ormlite)
  • 图片缓存框架(比如Universal-Imageloader)
  • 数据解析库(比如Gson)

之所以要选用这些库,肯定是为了避免重复造轮子,在开发效率的角度来说,选用优秀的开源库能大大缩短开发周期和提高开发效率,但从个人提升角度来看的话,我们可能就成了一个只会用API的程序猿了,如果想提升的话,造轮子或者分析这些优秀的源代码是一个不错的途径。

第三方服务集成

我们开发app的时候,肯定会遇到一些需求,比如推送的需求、自动升级、数据统计、社会化分享、用户反馈等等,然而对于一个刚起步的企业或者个人开发者的话,全都要自己去开发的话,那岂不是累死,像推送这种有一定的技术门槛,能做好都能成立一家公司了,所以选用一些第三方服务是一个可选之举。如果说你以后做大了,用第三方怕不好控制,那就自己做呗,有钱任性招兵买马就自己做,谁叫咱有钱呢。


前面这些东西开发一个app够了,开发出来能不能用还得有靠谱的测试,有没有crash,操作流不流畅,体验好不好才会有用户去用。这里不从产品的角度去评判一个app的好与坏,程序员要考虑的是从代码层面、性能层面去让我们的app变得更好。

云测

我们开发完毕之后,需要给测试工程师进行基本的功能需求测试,他们传统的做法就是根据事先写好的测试用例来做回归测试,再把测试出来的bug反馈给工程师,工程师再去修bug,但这样实在是太不靠谱了,有时候我们太在意功能而忽略了一些更重要的东西,那就是体验,给用户最直接的感受就是你这个app够不够惊艳,够不够流畅,用户可能根本就不在乎你这个功能做的有多牛逼。所以我们更应该从非功能性方向去做测试,我们的目的是让用户用的爽,而不是加一些乱七八糟的功能。那怎么测非功能性的一些因素,这里就要提到『云测』这个东西,因为现在设备太多了,如果公司要买一堆设备来做测试,那得多少成本,况且设备更新得太快,你根本就跟不上,所以就有了云测这个东西,它是一个云测试平台服务,提供了一大批主流机型,我们就直接省去购买设备的成本,还能得到完善的测试报告。

再来说一下它的好处:

  • 终端云,省去测试设备购买租赁成本
  • 高效率 节省测试人员成本及时间
  • 包含兼容性测试、性能测试、功能测试
  • 操作简单、详细测试报告生成

这么多好处,你在缺少测试工程师的时候,不去尝试那实在说不过去。

打包上线

前面的开发环节、测试环节都没问题之后,你离实现一个app的完整开发就不远了,正常的互联网公司,会把签名打包的apk给到运营,交给他们去写文案,上传到应用渠道,让渠道给我们去首发和推广。如果是个人开发者,这些工作就得我们自己做了。

总结

本篇博客从整个app开发流程上去给大家梳理了一遍,没有讲太多技术上的东西,但理解app流程对自己把握产品很有益处,虽然我们只是一个小小的开发者,但如果你有追求,哪天轮到你去负责一个产品的时候,你就应该对开发的每一个环节都了如指掌,因为出了问题,你也知道怎么针对性的去解决。笔者虽然只是一个小小的开发者,但也乐于思考,很多时候不太愿意被别人牵着鼻子走,因为我们的人生就应该把握在自己手里。


转:https://www.jianshu.com/p/42c249168275

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

APP 快速开发教程(安卓) 的相关文章

  • 基于Zynq FPGA对雷龙SD NAND的测试

    文章目录 一 SD NAND特征 1 1 SD卡简介 1 2 SD卡Block图 二 SD卡样片 三 Zynq测试平台搭建 3 1 测试流程 3 2 SOC搭建 四 软件搭建 五 测试结果 六 总结 一 SD NAND特征 1 1 SD卡简
  • webpack5学习进阶:多页面应用、Tree Shaking、PWA、Shimming

    文章目录 一 多页面应用 1 entry 配置 1 1 将两个本地文件打包在一起 1 2 还可以打包第三方库文件 1 3 多页面打包 2 index html 模板配置 3 多页面环境搭建 二 Tree Shaking 摇树优化 1 配置
  • rocketMQ系列(一): 消息中间件及rocketMQ简介

    一 消息中间件介绍 消息中间件是基于队列与消息传递技术 在网络环境中为应用系统提供同步或异步 可靠的消息传输的支撑性软件系统 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流 并基于数据通信来进行分布式系统的集成 通过提供消息传递
  • 什么是弱网测试?为什么要进行弱网测试?怎么进行弱网测试?

    什么是弱网测试 由于处在移动互联网盛行的时代 网络形态除了有线连接外 还有2G 3G 4G Wifi 5G等多种手机网络连接方式 首先额外补充一些5G的知识 2分钟了解什么是5G 在前不久结束的 MWC 2018 上 5G 成了全球的一个热
  • caffe-python lmdb 读写(转)

    lmdb write import lmdb import numpy as np import cv2 import caffe from caffe proto import caffe pb2 basic setting 这个设置用来
  • ORA-01186/ORA-01122/ORA-01110/ORA-01206

    author skate time 2011 12 14 在前几天检查一套DG库的时候 当read only打开stanby库的时候 在alert log里发现错误log如下 Wed Dec 14 15 45 19 2011 Complet
  • vb excel编程实例_有VB的基础,如何学习VBA

    VBA的全称Visual Basic for Applications 在Office等许多软件中 看到的宏 便是VBA 基于我的理解 VB基础指什么 这里的VB基础指能够看得懂简单的VB代码 对if结构 for结构有一定的认识 理解变量有
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • Spring Data 查询方法的规则定义(五)

    有句话这样说 欲练神功 挥刀自宫 请亲们先回到第一个 从Spring data 介绍 开始看 搭好环境 跟着步伐一块走 Spring Data 的方法必须严格按照它的规范进行编写 如果写错了就不行 下面是网上找的一张图 仔细看 咱们先拿几个
  • Mutimap用法

    Multimap 1 创建 Multimap
  • 牛客网&&华为机试&&坐标移动

    牛客网 华为机试 坐标移动 代码实现 include
  • 分库分表实战之从根上带你吃透MySQL的索引

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 问题分析 为什么查询变慢呢 接上期 我们知道了MySQL查询的全过程 也知道了整个过程的瓶颈在于磁盘IO 那怎么降低磁盘IO次数呢 答案就是索引 正确的使用索引 我们
  • css3网格布局

    网格布局是flex的升级版 父级属性display grid 即可把这个div变成网格 父级属性grid template columns 20 20 20 20 设置有多少列 每列有多宽 auto自动填 1fr 2fr 设置比例倍数 父级
  • 如何使用命令行编译以及运行java文件

    要想编译和运行java文件 很简单 只需要两个命令 1 javac 作用 编译java文件 使用方法 javac Hello java 如果不出错的话 在与Hello java 同一目录下会生成一个Hello class文件 这个class
  • 26-LeetCode刷题之删除有序数组中的重复项

    个人主页 你帅你先说 欢迎点赞 关注 收藏 既选择了远方 便只顾风雨兼程 欢迎大家有问题随时私信我 版权 本文由 你帅你先说 原创 CSDN首发 侵权必究 为您导航 题目 解题思路 代码实现 题目 26 删除有序数组中的重复项 解题思路 思
  • android的RecyclerView使用

    Android中的RecyclerView是一个可复用的列表控件 它比ListView更加灵活和强大 RecyclerView可以用来展示大量的数据 并且支持多种布局方式 包括线性布局 网格布局 瀑布流布局等 下面是使用RecyclerVi

随机推荐

  • Unity 3D协程

    Unity3D 是单线程的 StartCoroutine 开启协程 Coroutine StartCoroutine IEnumerator routine Coroutine StartCoroutine string methodNam
  • GCC学习笔记

    学习GCC编译器的推荐图书是 An Introduction to GCC 有中文版和英文版 可下载 和Using GCC gcc的官方手册 gcc默认是用GNU C的标准编译程序的 如果要指定用ANSI标准时 gcc ansi 指定用c9
  • 国产化芯片FM33G0系列之低功耗串口

    七 低功耗串口 首先 先看官方例程中的LP串口配置 void LPUart Init void LPUART SInitTypeDef init para RCC PERCLK SetableEx LPUFCKEN ENABLE LPUAR
  • 新书赠送

    公众号 机器学习与AI生成创作 后台回复 168 即可参与免费寄送图书 因果推断与机器学习 活动 活动截止日期为 2023 01 05 晚上10点 公众号后台回复 168 建议选中复制 随着大数据时代的来临 机器学习技术突飞猛进 并且在人类
  • 二阶段提交协议(2PC)

    模型 核心 1 引入了一个事务协调者 TC 只有它有超时机制 在一定时间内没有收到参与者的消息则默认失败 以此满足了安全性 2 在真正的提交操作前 增加了一个准备 prepare 阶段 收集业务结点是否有能力进行提交 准备阶段就是开启一个事
  • Kudu :主键冲突 status=Already present: key already present

    1 美图 2 背景 2 1 kudu单个主键 CREATE TABLE one key id string name string sex string age string PRIMARY KEY id PARTITION BY HASH
  • 虚拟机 关闭防火墙

    关闭防火墙 1 结果展示 2 查看防火墙状态 3 关闭防火墙 4 关闭本次 当前 防火墙 1 结果展示 注意小伙伴 如果指令不太会 可以使用 Tab进行补充 2 查看防火墙状态 systemctl status firewalld 3 关闭
  • 召唤神龙~让我们来看看源码及简单的修改分析,讲的很清楚哦

    最近召唤神龙好火哈哈哈哈哈哈哈 先给大家一个官方正版链接 召唤神龙 在给大家一套源码 这个源码不能本地运行 可以简单搭个服务器环境就可以啦 https gitee com bendantada long 这套源码里 最核心的逻辑在asset
  • matlab频域滤波gscale,7.图像增强—频域滤波 - 数字图像处理实验报告.doc

    7 图像增强 频域滤波 数字图像处理实验报告 doc 计算机与信息工程学院验证性实验报告 专业 通信工程 年级 班级 2011级6节实验目的 1 掌握怎样利用傅立叶变换进行频域滤波 2 掌握频域滤波的概念及方法 3 熟练掌握频域空间的各类滤
  • uniapp for循环显示的数据,无法动态修改数据的解决方案

    重点 替换数组中的指定位置的元素 把修改后的元素赋值给新声明的变量 进行list splice 0 1 new data splice传入的第一个参数代表要替换的数组下标 第二个参数代表替换的个数 第三个参数代表要替换的元素
  • ctfshow web-2(sql注入)

    原题 ctf show 因为本人也是刚学sql注入 所以会尽可能的写的详细一点 1 判断是否可以进行sql注入 关于进行sql注入的方法有三种 第一种 整型注入 单引号字符型注入 双引号字符型注入 我们首先使用万能账密的方式来一个一个试属于
  • 算法训练营第四十四天(9.6)

    目录 Leecode 647 回文子串 Leecode 516 最长回文子序列 Leecode 647 回文子串 题目地址 力扣 LeetCode 官网 全球极客挚爱的技术成长平台 题目类型 回文 class Solution public
  • linux 程序/项目 一直运行/不退出

    首先我们需要安装screen sudo apt get install screen 完成后我们输入screen 进入screen的提示信息后再按回车来正式进入 接下来进入对应目录输入要运行的命令 cd test python3 test
  • 单元测试中的打桩技术

    一 桩是什么 桩 或称桩代码 是指用来代替关联代码或者未实现代码的代码 如果用函数B1来代替B 那么 B称为原函数 B1称为桩函数 打桩就是编写或生成桩代码 二 打桩的用途 打桩的目的主要有 隔离 补齐 控制 隔离是指将测试任务从产品项目中
  • JavaScript中回调函数的this使用

    假设某类有函数 somefunction a b c 当你用对象调用函数 someobject somefunction a b c 此时this默认为someobject 这个很简单 麻烦的是回调函数 const callback som
  • 【满分】【华为OD机试真题2023 JAVA&JS】统一限载货物数最小值

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 统一限载货物数最小值 知识点二分查找 时间限制 1s 空间限制 64MB 限定语言 不限 题目描述 火车站附近的货物中转站负责将到站货物运往仓库 小明在中转站负责调度2K辆中转车
  • EEG开发进度

    目前的EEG项目已经可以说基本宣告完成了
  • layui中关于table表格reload后有缓存问题的解决办法

    问题描述 我在父窗口的table中的数据渲染方式不是异步请求后端 而是直接从后端加载数据 渲染到模板的时候直接渲染的 也就是下图中的data tableDatas 如下图 表格渲染 table render elem mytable tex
  • YOLO目标检测标签的格式解析

    一 YOLO标签的格式
  • APP 快速开发教程(安卓)

    前言 本篇博客从开发的角度来介绍如何开发一个Android App 需要说明一点是 这里只是提供一个如何开发一个app的思路 并不会介绍很多技术上的细节 从整个大局去把握如何去构思一个app的开发 让你对独立开发一款app的时候有个理解 如