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

article/2025/10/2 12:57:28

毫无疑问,开发一款自己的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支持下。


http://chatgpt.dhexx.cn/article/ZOADLq0c.shtml

相关文章

鸿蒙APP开发入门到进阶 | 入门完整篇。

大家好,我是 码工,一个有十年工作经验的码农,一心追求技术。 先说说我的开发经历,10年毕业,到目前已经十多年开发经验,大学学习了多种语言,Java,Android,c,c&…

超详细图文保姆级教程:App开发新手入门(二)

重要: 想学习APP开发的新手同学, 建议访问我发布的最新版本的文章教程 【2023最新】超详细图文保姆级教程:App开发新手入门 上文我们已经成功的创建了一个项目,接下来我们讲述一下,如何导入、编辑、提交项目代码下面我…

开发一款Android App,从零开始详细讲解

入门篇:第一篇:开发环境篇第二篇:材料设计篇第三篇:规范开发篇第四篇:从项目开发到上架篇(篇章调整,最后更新) 进阶篇:第五篇:设计模式篇第六篇:…

app后台开发入门

2017/5/1第二次更新 前言: 在我写下这篇文章之前,我头脑中的app后台开发,有且只有一个流程“客户端Cilent向服务器Server请求数据,服务器Server响应客户端请求并返回json数据”。但是,仅仅用语言描述出这个流程&#…

手机app开发(新手教程)

咳咳~好久不见亲们。估计你们已经忘了我的存在了吧。小编表示很伤心💔。唉没办法最近事情有点多(实则就是太懒,不想跟新)。不过今天我先跟大家分享的是我最近研究的新方向。手机app开发。感兴趣的朋友欢迎点赞关注。小…

超详细图文保姆级教程:App开发新手入门(三)

重要: 想学习APP开发的新手同学, 建议访问我发布的最新版本的文章教程 【2023最新】超详细图文保姆级教程:App开发新手入门 上文我们已经完成了一个应用项目的导入、代码更新和代码提交,本章继续讲述一下,如何在开发过…

超详细图文保姆级教程:App开发新手入门(五)

重要: 想学习APP开发的新手同学, 建议访问我发布的最新版本的文章教程 【2023最新】超详细图文保姆级教程:App开发新手入门 上文回顾,我们已经完成了一个应用的版本编译,本章我们来了解一下如何引入APICloud的原生模块…

超详细图文保姆级教程:App开发新手入门(一)

重要: 想学习APP开发的新手同学, 建议访问我发布的最新版本的文章教程 【2023最新】超详细图文保姆级教程:App开发新手入门 1. 关于APICloud PS: 本段内容主要目的是去除官方语音描述,用通俗的语言来简单介绍一下APICloud&#x…

大数据的数据科学与关键技术是什么?

对于大数据想必大家都有所了解了吧?随着信息化的不断发展,大数据也越来越被人们所熟知。我们都知道,现在很多行业都离不开数据分析,在数据分析中我们有听说了大数据,大数据涉及到了很多的行业,一般来说&…

大数据的相关技术

架构、采集、存储、计算处理和可视化等 架构设计技术: Flume、Zookeeper和Kafka采集技术: Python和Scala存储技术:Hbase、Hive、Sqoop计算技术: Mahout、Spark和Storm可视化技术: Echart和Superset 大数据技术是一系列使用非传统的工具来对大量的结构化、半…

大数据分析,主要运用了哪些关键技术?

古代,人们用牛来拉重物,当一头牛拉不动一根圆木时,他们不曾想过培育更大更壮的牛。同样,在面对计算能力不足时,我们也应尝试着结合使用更多的计算机系统。 Hadoop就是基于这样的理念设计。Hadoop是一个由Apache基金会…

巨龙信息大数据集成系统 多元数据汇聚的一站式集成治理

巨龙大数据集成系统以20多年数据治理实践为基础,自主研发,兼容适配信创,为海量异构数据的超大规模数据仓库建设,提供抽取、清洗、整合、入库等一站式集成服务,帮助高效开展数据治理,助力数字化转型。 产品…

大数据相关技术介绍

基础:常用算法与数据结构、HTML、CSS、JavaScript 操作系统:Linux 编程语言: Java:IO模型、网络编程、多线程、内存管理机制等基础知识|熟悉缓存、消息队列、索引查询|高并发、高负载、高可用系统的设计开发及调优 Java Web项…

大数据关键技术探讨

大数据技术,就是从各种类型的数据中快速获得有价值信息的技术。大数据领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。 大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析…

一文全面掌握大数据关联与汇聚

云智慧 AIOps 社区是由云智慧发起,针对运维业务场景,提供算法、算力、数据集整体的服务体系及智能运维业务场景的解决方案交流社区。该社区致力于传播 AIOps 技术,旨在与各行业客户、用户、研究者和开发者们共同解决智能运维行业技术难题&…

大数据世界中的新技术

大数据世界正在以前所未有的方式发生着变化,特别是企业将数据整合到一起并将其应用到业务的情况下。而企业都面临的挑战是能够发现、识别并带来构建产品、提供服务和了解客户所需的数据。数据集成本身几十年来一直是一种实践和挑战。然而,新的工具和流程…

大数据分析与应用技术创新平台

原文链接:https://mp.weixin.qq.com/s/kCDYOInF8KjHstIMAWSljA 大数据分析与应用技术创新平台 张平文, 鄂维南, 袁晓如, 傅毅明 北京大学数学科学学院,北京 100871 北京大学大数据科学研究中心,北京 100871 北京大学信息科学技术学院&am…

大数据关键技术

大数据技术,就是从各种类型的数据中快速获得有价值信息的技术。大数据领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。 大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分…

数据整理——大数据治理的关键技术

摘要:数据是政府、企业和机构的重要资源。数据治理关注数据资源有效利用的众多方面,如数据资产确权、数据管理、数据开放共享、数据隐私保护等。从数据管理的角度,探讨了数据治理中的一项关键技术:数据整理。介绍了以数据拥有者和…

【学习】大数据关键技术

学习内容描述: 大数据涉及的四个环节是什么? 云计算服务的三种服务类型是什么? 重点知识: 大数据涉及的四个环节:1、数据采集;2、数据存储;3、数据管理;4、数据分析与挖掘。云计算…