零基础一个月学会Android开发APP-01 由于公司业务发展需要做一款Android应用,同时由于部门没有专业Android开发技术人员储备,且经过调研发现此款应用界面简单、功能交互简洁,本人便毛遂自荐担下此任,花费两周时间做成一款符合业务发展要求的Android应用,在开发的同时,也进行不断代码优化,到一个月时间做成另一款界面比较复杂的Android应用,并完成了对Android开发的基础知识积累到各类框架的应用的迭代,从小白到初级水平的提升,因为是半路出家,所以在Android开发的领域来讲还是不敢造次,只是借此机会,重新梳理一下从0开到到1的过程,以及总结此次应用开发对我在软件开发上的认知提升。 说是“零”基础实际上是不恰当的,这里的零基础指的是对Android开发的认知是从0开始,而我是一个对Java有多年开发经验的从业人员,如果对Java的认知也是“0”的话,那一个月做好一款Android应用难度还是相当大的。 不过,俗话说“世上无难事只怕有心人”,一个人要想做成一件事,首先就要有想做这件事的决心,其次就是找到一定的方法制定好计划,最后二话不说就是干。然后不断碰壁、尝试、求助、解决问题、再碰壁、再尝试……不断修正,就能够做成。 好了,废话不多说,上干货。 一、新建工程Project 下载Android Studio以及安装相关SKD、插件等就不啰嗦了,Google和百度很多介绍,查询,搞定即可。如下图: 以上图中各文件/文件夹含义: .git :Git库文件 .gradle:Android Studio自动编译生成文件 .idea:Android Studio生成标识为开发工作目录 app:Android应用的module模块,存放代码 gradle:gradle自动构建项目工具环境 .gitignore:Git项目管理文件忽略一些不必上传的文件 build.gradle:gradle项目自动编译的配置文件 gradle.properties:gradle构建项目运行的配置文件 gradlew: 自动构建工具的linux脚本 gradlew.bat: 自动构建工具的windows脚本 local.properties: Android SDK NDK 环境路径配置 README.md: Git项目介绍文件 settings.gradle: 配置引入子module作用生效 .iml: Idea项目文件 在Android Studio中的目录结构如下: 目前一个“Empty Activity”项目就建立成功了,可以直接运行在模拟器上。 模拟器 模拟器可以用Android Studio自带的,个人使用觉得太慢太卡就用了别人推荐的Genymotion,确实快很多,另外也下载了一个“逍遥模拟器”供测试人员安装在windows中模拟安装apk进行测试。 二、产品需求 我在墨刀上大概画了一下这个产品的基础想法,自己琢磨的,不具备专业UI设计水准,只是参考了一些常用的APP的设计风格,比猫画虎而已。 登陆界面如下: 分析: 登陆界面采用了沉浸卡片式风格,因此需要将顶部工具栏做成背景一致也要引入卡片风格的sdk。 三、代码简要上手 1、好现在我们创建LoginActivity,新建Activity选择BasicActivity就行了,因为界面我们自己设计,不用默认提供的,如下图: 2、创建之后,会生成三个文件一个LoginActivity.java,两个布局文件activity_login.xml、content_login.xml,在activity_login.xml中通过include标签引入后者。 3、另外打开Module的build.gradle (注:gradle文件相当于maven的pom文件,用于配置安卓项目构建,引入安卓使用SDK等) 通过api或者implementation关键词引入card风格sdk: implementation 'com.android.support:cardview-v7:28.0.0' 4、打开AndroidManifest.xml进行修改,将创建默认的MainActivity替换掉改为新创建的LoginActivity为启动入口。 AndroidManifest.xml作用为安卓启动器启动安卓应用时,通过它知道从哪个入口启动应用第一个界面,都需要访问什么资源,如允许访问网络、访问通讯录权限等。 AndroidManifest.xml结构主要标签讲解:
1、 allowBackup:当allowBackup标志值为true时,即可通过adb backup和adb restore来备份和恢复应用程序数据,有一定的信息风险,release版本设为false。 2、 supportsRtl:声明你的application是否愿意支持从右到左(RTL就是right-to-left的缩写)的布局。 3、 android.intent.action.MAIN:通过intent-filter标签内容标注该activity为应用启动主入口。 4、 android.intent.category.LAUNCHER:表示该activity被列入安卓启动器中,即在安卓界面有图标点击可启动该activity。 5、 其它的如roundIcon 圆形界面Icon等都是见名知意比较好理解,不多做介绍。 |