Android新手如何学习开发一款app?

01_安卓APP开发流程概览 目录安卓APP开发流程前言一、流程概览二、分步概述1.需求分析2.产品原型设计3.UI视觉设计4、数据库搭建5、服务端开发6、Android客户端开发7、APP程序测试8、上传到应用商店9、APP的维护以及更新总结 安卓APP开发流程 前言 在学习一个新东西的时候,我习惯用总-分-总的方式:总——先将要学习的内容总体框架建立起来,形成最初的知识图谱,分——再将框架中的每一项子内容逐个学习、实践,填充知识图谱,总——最后将所有学到的东西进行归纳总结,形成最终完整详细的知识图谱。这样一轮下来,任何知识都会学的十 阅读详情

毫无疑问,开发一款自己的App对于初学者来说,无论从技术学习,还是找工作(或者装x),都是一大利器。那么如何才能快速上手,开发一款属于自己的app。本篇文章仅以自己的一些经验给更多的Android新手一些建议。

一、误区

在讲如何开发一款app之前,先说下一定要避免的一些误区。

  • 借鉴与copy
  • 表面与原理
  • 效果与深度

(1)借鉴是为了学习

作为一名Android开发新手,在学习开发一款自己的app之前,参考一些大牛的项目,进行借鉴与参考是一个很好的捷径。

然而有些新手上手就开始撸代码,看着一脸懵逼的代码,不明所以,想着不管三七二十一,敲着敲着就明白了。结果,最后一出bug就懵逼了,丝毫不理解项目的结构与框架,更不提其中的技术难点。

所以不要盲目地copy,磨刀不误砍柴工,要像看源码一样学习项目。先理清项目中的结构,使用的框架,每个类的功能,以及使用到的技术点,庖丁解牛,逐个拆分学习,化为一个个的技术问题,这样才能最终转化为自己的知识。

(2)从表面深入原理

针对具体的技术实现,不要仅仅以实现为目的,更不要仅仅因为实现了一些炫酷的UI效果而沾沾自喜。

对于一些技术,要知其然,更要知其所以然。比如:进程间通信的实现方式AIDL,可能照着一些模板就可以实现,达到目的。再比如说:RecyclerView或ListView,按照一定的方法就可以快速实现列表布局。

然而这些实现不仅在一个项目或一处使用,而是频繁高发的实现,将来也更是工作或面试中会遇到的。所以我们要透过表面学习原理,在开发一款app的同时,通过这种方式激励自己加深对技术的理解与实际应用。

比如,针对AIDL理解binder机制的实现,更进一步理解android中的进程间通信方式。针对RecyclerView或ListView,理解复用机制以及如何定制化实现一些特殊的效果,加深我们自己的技术深度。

(3)不盲目追求效果

Android开发的乐趣在于可以自己实现app的开发,用技术创造体验。

然而正是这种乐趣可能会导致一些新手盲目注重UI实现效果,而忽略自身的技术学习。有时候技术学习与效果并不冲突,然而在自己独立开发app,学习技术的过程中,可以适当较少对UI效果的追求,专注于对技术的追求与学习。

当然完美主义者(强迫症)会不知觉地倾斜,但也请保持平衡。

二、准备工作

在进行开发之前,我们要先进行足够的准备工作,这样才能事半功倍。

通常而言,新手在开发第一款app都是来自于借鉴,站在巨人的肩膀上进行学习,那么如何选择一款自己想做、技术难度适当、干货较多的app?

选择参照app

  • 先选择自己想做的类型,比如:播放器,新闻类等,一些适合新手开发的app。然后在Github中搜索(一定要学会使用Github)。
  • 了解当前的流行技术框架,选择自己想学的一些框架,筛选出使用这些框架的app。
  • 从满足以上需求的app中找出一些star较多的项目,因为群众的眼睛是雪亮的,这代表该项目是有可取之处的。
  • 先大致了解下项目结构,不要盲目选一些效果炫酷的实现。要根据自己的技术能力选择,初学者不要选择太过复杂的,要循序渐进,才能事半功倍。

开发前奏

选择好了一款或多款参照app后,那么就要开始全面了解这款app。

  • 项目结构:了解整个项目的结构,各个功能模块,以及使用的框架。一般项目结构都会按照如下结构展开。

  • 框架使用:了解整个项目使用的框架,然后学习该框架的使用。先看相关文章,了解基础使用,然后了解原理,最后基于自己的项目进行封装,这样会方便后续快速功能实现。

三、开发app

关于具体开发,仅介绍一些通用的东西,供大家参考。

  • 项目构建 :一个优秀的Android应用从建项目开始,创建项目的一些规范。
  • 工具类:AndroidUtilCode,所有你想用的工具类,都可以从中抽取。
  • 基类:构建项目中基类,如Activity,Fragment等,可以参考网上的一些实现,但是大而全不一定好,适合自己的才是最好的。

四、个人经验

(1)动机

作为一个Android新手,我也是在今年2月份才开始想学习做一款app,增加自己各方面的能力。

在刚开始,想学习一些流行框架的使用,如Retrofit,RxJava,Glide,EventBus以及MVP模式。

在构思整个项目的时候,想的大而全,想实现太多的功能,而然做到最后只实现了新闻浏览以及图片浏览的功能,虽然项目不完整,但是仍然学到了不少东西。

(2)过程

因为实现的功能比较简单,整个项目的周期大概20多天左右。其实开发周期也就10多天,在前10天左右一直在学习了解各个框架的使用及原理。

Read the fucking source code,这个过程虽然很枯燥,不过也是一个积累与沉淀的过程。

从我的博客就可以看出我在准备这个项目时的学习历程。博客写作真的是学习的一个很好方式,可以将很多东西变成自己的,不再留于表面。

RxJava学习过程
手把手教你使用 RxJava 2.0(一)
手把手教你使用 RxJava 2.0(二)
手把手教你使用 RxJava 2.0(三)

Retrofit学习过程
Retrofit配置详解及封装,让你的网络请求更简单
Retrofit+RxJava网络请求异常处理

EventBus学习过程
关于EventBus,从使用到解析(上)
关于EventBus,从使用到解析(下)

MVP模式学习过程
Android MVP 的简单介绍与使用

具体技术解决过程
Android之仿哔哩哔哩客户端首页+抽屉式导航
类似支付宝首页——RecycleView多布局结构实现
类似支付宝应用管理界面——RecycleView+ItemTouchHelper实现拖拽滑动
ViewPager+TabLayout+Fragment懒加载机制完全解析

边做边写,一路下来,收获还是颇丰,小伙伴们可以在暑假试一试,很有效。

(3)结果

最终完成的项目在现在看来很low了,不过确实是一个很好的开端。下面展示下具体实现的效果,纪念下我的第一款app。

Github地址:https://github.com/LRH1993/LiveCircle

感兴趣的看下,觉得以上介绍不错的可以给个star支持下。

如何在嵌入式应用程序的APP层创建和应用链路(Chain) 通过定义链路结构、创建链路、添加处理步骤以及应用链路,我们可以有效地组织和处理复杂的任务。请注意,在实际应用中,您需要根据具体的需求和处理步骤的功能进行相应的修改和定制。链路(Chain)在嵌入式系统中扮演着重要的角色,它是一种将多个处理步骤组合在一起的机制,用于处理特定的任务。应用链路的过程涉及按照顺序逐个处理步骤,并将处理结果传递给下一个处理步骤。函数按照顺序遍历链路中的每个处理步骤,并将处理结果传递给下一个处理步骤。函数,该函数将按照链路中处理步骤的顺序逐个处理数据。表示链路中处理步骤的数量。 阅读详情

相关推荐

如何开发一款APP

APP开发是一项系统工程,需经历需求分析、技术选型、设计开发、测试优化和上线维护等关键步骤。首先要明确目标用户和核心功能,避免功能冗余;其次在原生开发(高性能)与混合开发(低成本)间做出合理选择;开发中需重视UI/UX设计、前后端协同及全面测试;上线后要持续迭代优化并适配新系统。成功的APP开发需要平衡技术实现与用户体验,通过持续更新保持产品竞争力。

tktw1998的博客 879

Android应用开发学习

这只是一个简单的示例,但它展示了如何使用Android Studio和Java编写代码来创建一个基本的Android应用程序。希望这个教程能够帮助您入门Android应用开发,并激发您继续学习和探索更多的功能和技术

xi_xi_00的博客 618

嵌入式软件分层模块案例

关注+星标公众号,不错过精彩内容作者 | strongerHuang微信公众号|strongerHuang初学单片机的时候,当你写简单的裸机代码时可能没有底层驱动、中间层、应用层这些概念。但当你把项目做大了,你就会发现,分层是非常有必要的。今天酒类给大家分享一个常见的分层案例。一、前言 以STM32为例,打开网络上下载的例程或者是购买开发板自带的例程,都会发现应用层中会有stm32f10x.h...

strongerHuang 696

Android App开发学习第二十天:响应系统设置的事件(Configuration类)

1.Configuration给我们提供的方法列表 densityDpi:屏幕密度 fontScale:当前用户设置的字体的缩放因子 hardKeyboardHidden:判断硬键盘是否可见,有两个可选值:HARDKEYBOARDHIDDEN_NO,HARDKEYBOARDHIDDEN_YES,分别是十六进制的0和1 keyboard:获取当前关联额键盘类型:该属性的返回值:KEYBOARD_12KEY(只有12个键的小键盘)、KEYBOARD_NOKEYS、KEYBOARD_QWERTY(普通键盘) ke

NikerunZoo的博客 328

安卓新手如何学习开发一款游戏APP呢?

  毫无疑问,开发一款自己的App对于初学者来说,无论从技术学习,还是找工作,开发手机游戏而言,都是一大利器。那么如何才能快速上手,开发一款属于自己的app。本篇文章仅以自己的一些经验给更多的Android新手一些建议。   一、误区   在讨论如何开发应用程序之前,让我们先讨论一些必须避免的误解。   借鉴与copy   表面与原理   效果与深...

dichu2408的博客 1853

安卓期末大作业——Android日历备忘录

实现了日历查看,添加备忘录,闹钟提醒,删除备忘录等功能,适合。AndroidStudio2.2,新手最好使用此。搭建,不同版本修改配置比较繁琐。

安卓精品项目源码 813

安卓期末大作业——Android记事本

AndroidStudio2.2,新手最好使用此。期末大作业——Android记事本。搭建,不同版本修改配置比较繁琐。中包含两个界面不同的案例,

安卓精品项目源码 1742

Android数独游戏案例

功能描述: app实现了数独游戏基础功能,难度分为入门,初级和大师级,可设置背景音乐、背景颜色和字体大小等,适合新手学习开发语言: java 技术框架: mvc 开发工具: AndroidStudio2.2,新手最好使用此版本搭建,不同版本修改配置比较繁琐 数据库 SharedPreference 程序截图 代码在公众号:师哥帮忙 中自行下载。 ...

师哥帮忙 763

我来帮你生动地了解AndroidUI控件!

大家好~这两天没写博客,只是因为我匿起来做了一个小App。一个可以帮助Android开发新手学习AndroidUI控件的App。左划或者点击左上角按钮可以打开侧边栏(目录)。点击就可查看相应的UI知识。我采用了讲解UI概念和属性、代码示例以及效果展示的一条龙模式。虽然很想直接把工程文件上传给各位,因为里面有我对每一块代码的注释,非常详细。但无奈我的CSDN资源上传权限只有60MB,工程文件压缩后

红石丶的博客 456

开源记账App MMAS Money Tracker 完整评测:5大核心功能让你轻松掌握个人理财

MMAS Money Tracker 是一款免费开源的记账App,专为日常开销记录和个人理财管理打造。它用 Flutter 开发,同时支持 Android 和 iOS,数据保存在手机本地,隐私无忧。对于想养成记账习惯的新手来说,这或许是最值得体验的开源记账App之一。 [![MMAS Money Tracker 开源记账App图标](https://raw.gitcode.com/gh_mirr

gitblog_00067的博客 429

震惊!!十五天开发一款安卓打卡app,并且成功发布!

震惊!十五天开发一款安卓APP并成功发布摘要功能展示,页面展示功能展示项目查看安卓app下载:简化版的微信小程序开发过程界面设计功能设计后台开发前端开发安卓app一些功能的实现安卓登录状态保存页面获取登录用户的信息下拉刷新功能打卡卡片绘制卡片卡片适配问题屏幕问题文字换行问题总结 摘要 假期宅在家里,现在正处于大三,面临找工作和考研的两种选择。但是对找工作其实没有太大的兴趣,于是便准备考研。然后想着...

程序员凯小白的博客 1万+

10个很棒的学习Android 开发的网站

1. Android Developers   作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会。   2. Android Guides - CodePath   CodePath是国外一个技术培训机构,主要培训iOS 和Android开发,而CodePath将Android Guides放在Github,已经...

weixin_34007879的博客 169

从零开始用Android Studio开发一款记事本APP(附完整代码)

通过本文,你已掌握使用Android Studio开发记事本APP的全流程。从数据库设计到界面交互,每个步骤均提供了详细代码和解释。添加分类标签支持图片和语音数据云同步立即动手实践,打造你的专属记事本吧!

shuikaa的博客 1万+

十五天能干什么?成功开发并上架一款安卓app

摘要 假期宅在家里,现在正处于大三,面临找工作和考研的两种选择。但是对找工作其实没有太大的兴趣,于是便准备考研。然后想着手记录一下考研的生活点滴,作为以后的一个回忆。毕竟考研是最后一次可以通过努力来改变学历的机会。然后就在应用市场和小程序搜罗各种各样的打卡app或者小程序。但是都没有符合自己的要求的。于是就萌生了开发一款属于自己的打卡小程序。刚开始做了个一个小程序并且成功发布了。叫做”21天习惯...

程序员凯小白的博客 5741

从零开始开发一款Android App

转自:http://www.jianshu.com/p/a58d15ef5c8b 入门篇: 第一篇:开发环境篇 第二篇:材料设计篇 第三篇:规范开发篇 第四篇:从项目开发到上架篇(篇章调整,最后更新) 进阶篇: 第五篇:设计模式篇 第六篇:网络请求篇(上)     网络请求篇(下) 第七篇:图片处理篇 第八篇:数据库篇 第九篇:开源资源篇 高阶篇: 第十篇:自定义控件篇

weixin_39389323的博客 1万+

适合新手看的安卓开发android studio

第一行代码 Android 第2版 第二版 郭霖 手机app Android 安卓开发从入门到精通程序设计编程教程教材书籍 https://s.click.taobao.com/bFSuyU

wangchaoqi1985的博客 7233
上一篇: Eyepetizer-in-Kotlin:一款简约的小视频app,带你走进kotlin
下一篇: AutoFlowLayout:多功能流式布局与网格布局控件
LRH0211
博客等级 码龄10年 90粉丝 44原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值