学习Android开发的一点总结

前言


        我就是想简单的来此记录一下。

        此文章比较适合于具有一定Java基础、移动端开发基础或前端基础人士。或者说是我拥有iOS开发的基础,学习Android开发。

       初学Android开发3个月,记录一下学习体会,或者说是分享一下拥有Java基础(移动端开发基础)如何快速掌握Android开发,个人觉得可以首先了解的知识。了解这些我个人认为就可以结合网络各种资料缓慢的进行Android开发了,当然前提是你拥有Java基础或者移动端开发基础以及编程的头脑。

      这里先简单粗略描述,后续慢慢细化,毕竟本人不擅于写文章。

      我认为掌握好Android开发,需要了解并熟悉这么几点:语法、调试、UI、网络、数据、线程、其他Android特有的功能开发(Service,广播等)、熟悉并了解一些常用的开源框架或jar包运用于项目。

这是我学习过程的目录结构:


第一章:Android快速入门

       Android开发环境的搭建相关、Android项目结构的了解、Android Studio的调试及模拟器等

第二章:四大应用组件之Activity

      Activity相关相关API、生命周期、布局等

第三章:用户界面(上)

      UI的理解、常用UI组件的使用(Button、TextView、EditView、ImageView、ListView...)

第四章:用户界面(下)

      常用UI布局的使用(LinearLayout、RelativeLayout、FrameLayout、Fragment...)

第五章:数据存储(上)

      sq数据存取、手机内部及外部文件存取、数据模型DAO...

第六章:数据存储(中)

      SQLite数据库存储

第七章:数据存储(下)

      远程服务器存储、网络请求、下载安装APK、网络请求开源框架Volley、xUtils...

第八章:消息机制与异步任务

      Handler、异步的理解、JSON数据解析、JSON与Model、Gson开源框架、动态数据列表、图片缓存...

第九章:事件机制

      MotionEvent、KeyEvent、自定义View、View的生命周期...

第一十章:四大应用组件之Service

      Service理解及生命周期、AIDL...

第一十一章:四大应用组件之BroadcastReceiver

     相关API、发送接收广播、电话监听...

第一十二章:四大应用组件之ContentProvider

第一十三章:动画

      缩放、旋转、平移、透明、复合动画...

第一十四章:图像处理

      图片的读取和保存、Shape的使用、_Selector+Drawable、_Selector+Shape、_9Patch图片、横竖屏...

第一十五章:碎片

   Fragment的相关使用...

准备工作


       如果你还未安装Android Studio见Android Studio安装,如果还不会创建Android工程见创建第一个Android工程

开始开发


一.程序入口

       首先第一点我们开发程序或者说是在看一个陌生的项目的时候,一般要找的就是程序的入口在哪?或者说我们关心的首先运行的代码在哪?就好像iOS开发我们首先找的就是AppDelegate类在哪。Android程序的入口在哪呢?,见下图:功能清单文件,很显然我们看到了熟悉的application标签,其属性icon、label顾名思义,其中还有多个activity组件(后面提及)属性name:指向MainActivity、FirstActivity类等,重点我们看蓝色框只要该activity组件设置了此配置,则程序可见的第一个界面将从MainActivity开启,即我们关心的程序入口。

功能清单文件

      既然说到AndroidManifest.xml功能清单文件,那就一并说下设置获取程序相关权限,如网络请求、位置、SD卡、拍照、相册等权限,我们第一次安装某一个APP的时候总会有各种权限提示,其实就是在此设置的,如果不设置程序使用该功能时将crash。如网络请求权限的设置:

      <uses-permission android:name="android.permission.INTERNET"/>

      更多见uses-permission权限列表

二.Android四大应用组件


      Activity、Service、BoardCast Receiver、Content Provider。个人认为常规APP基本就用到Activity及Service额外还有一个常用的Intent,如果要深入研究可以各种资料搜索,这里简单说下Activity。

      Activity从字面上的意思理解是活动行动的意思,在Android中Activity指与用户交互的界面,从你打开一个Android应用所见到的第一个页面,就是一个Activity,Activity作为一个可见的界面,给用户以良好的体验很重要,所以布局的漂亮与否决定一个应用用户体验。比如下图MainActivity界面启动FirstActivity界面,而界面的布局加载通过setContentView()来指定,如MainActivity的布局文件为activity_main.xml

Activity
布局

      我们需要了解Activity的生命周期,以便在这一过程中做各种操作。

三.UI及布局


       UI是非常重要的一部分,项目绝大多数代码都与之有关。iOS开发、前端开发、各种与界面打过交道的对于UI及布局的掌握将水到渠成,几乎各种都是顾名思义的命名,不同平台偶有不同,如Android和前端的Button,iOS则为UIButton,Android的TextView,iOS则为UILabel等等。如果想直观的查看Android的控件,找到任意一个布局文件打开即可,如图所示,直接拖拽控件至右侧界面即可,如果想了解某个控件的用法,请查看Android源码或文档(找到Android SDK目录下的docs,点击docs下的index.html浏览器打开,如果没有网络搜索),也可各种资料搜索。

UI控件

      这里特变的说下Android的布局方式,如下图红框部分,主要常用的有:FrameLayout、LinearLayout、RelativeLayout、fragment,掌握这4个布局方式足以满足几乎所有需求。通过使用就布局的灵活机动性个人认为比iOS好点,如隐藏一个控件Android可以View.GONE紧邻控件会自动填补空白iOS则还要代码修改约束等等,有一点Android做的是非常好,就是输入框和键盘的位置自适应移动,iOS则麻烦的多。

布局方式

四.网络及数据


      UI及布局都写好了,为了让界面活起来,就需要网络及数据了。Android网络请求如果要了解深一点可以搜索HttpURLConnection加以学习。当然此篇文章目的非如此,我们直接使用github上开源的xUtils3等网络请求框架,非常直观快速的进行网络请求,同时xUtils3上还有许多的工具类如常用的获取手机屏幕宽高、字符串操作、缓存、图片等,非常好用。如何导入或打开其他项目、jar包等见本文下面的第六点。

       网络图片的加载框架就非常多了,推荐两个:picassoglide

       接下来就是json和model的相互转换,首先我们需要一个框架gson(或者搜索gson.jar)和一个插件GsonFormat,也可以直接点击Android Studio菜单File-Plugins搜索GsonFormat安装。gson一行代码便可以将网络请求到的json转换为对应的model,而GsonFormat可以为model快速的生成对应的属性及set、get方法。

GsonFormat

五.项目打包apk


      点击Build选择Generate Signed APK...

打包apk

       如果之前没有为该项目创建Key store,则Create new,相关填写信息一目了然,最最最重要的是,一定要保存、备份、记住密码等,否则当你过了很久或者下一个人接手打包发现找不到Key store时那就悲剧了,只能重新创建,最蛋疼的是用户安装更新无法覆盖原来的APP!

创建Key store


六.导入或打开其他项目、jar包等


       Android开源项目及库整理总结 非常多!

       Android Studio导入github上下载下来的一些项目出现一些问题:导入就在下载Gradle或者直接更本就导不进。

        导入完整的Github项目,工程相关用于配置整个项目的编译环境和依赖,项目相关就是你的代码和配置文件啦。我们先来看工程相关,他包含下图几个文件夹:

由于现在Gradle还不是太成熟,所以版本更新会比较快,如果当初项目作者使用的是其他版本的Gradle,而你没有,AS就好默认去下载最匹配的Gradle,可偏偏在国内,这个下载奇慢无比,而且Gradle的文件也挺大有50+MB,所以,我们需要修改下配置先:

第一:打开gradle文件夹warpper文件夹,打开gradle-wrapper.properties修改distributionUrl=xxx的连接为你现有成功运行的项目的一样。个版本gradle下载地址http://services.gradle.org/distributions/

第二:点击上图app文件夹,修改项目相关的build.gradle。主要是确保下图红框部分的版本号在AS中已下载,否则AS会花大量时间下载,可修改为你的AS中已下载好的版本号

如果是导入module(工程存在多个module项目,如开源框架xUtils3或其他可以直接运行的app导入后文件夹有手机图标标志)则直接进行第二步修改项目相关的build.gradle。

如果是导入jar包直接导入即可。

待续...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容