我的第一个Android程序

一.java都没咋学好你有什么勇气学习Andriod开发?
到目前为止(2018/1/28)我大概只算是java入门吧,毕竟我只是再慕课网上看完了3季的java入门课程,再实验楼学习了一下,大概敲了1000多行代码吧,好在之前学过C#,也用C#开发过几个像样的网站(好像关系不大,毕竟我只是用C#来访问数据库),总之就是自学过几天java se。这么急忙的上手Android的开发,是因为假期里时间比较多,就想自己瞎折腾一下;还有就是想借学习Android实战一下自己所学的java知识,小学生都学习python了,弄的我压力一直好大。几天学习下来,感觉问题不大,其实只是Android 入门的话,大概java也只需要入门吧。

二.Android开发环境的搭建
逛了一下知乎,发现 Android studio 比eclipse好一些,毕竟Android studio是google开发的专门用于Android 开发的工具,比较有名的android入门书籍《第一行代码》第二版也是用的Android studio,我用下来感觉是这玩意儿太智能了,代码自动补全功能相当强大,和pycharm差不多吧,比visual studio好用。
1:准备工作
--JDK:这个应该不用准备吧,毕竟你的电脑上肯定已经有了,没有的话只能说明java都没学。
--Android SDK :Android开发工具包,在开发java程序时需要引入该工具包,来使用Android相应的API,也可之前不下在,安装Android studio时,软件会提醒我们一并安装
--Android studio : google被墙,不过好在有中文社区http://www.android-studio.org/
下载速度还行,3.0版681M,点击这个安装文件,傻瓜式操作大多步骤都是默认然后next就行了,会帮我们安装Android studio 和Android sdk
2:走过的坑
2-1.安装结束,刚要创建project时,弹出unable to access android sdk add-on list
不能成功将android sdk 添加到列表(大概好像是这样翻译的吧),总之就是android sdk 没有安装成功,走了点弯路,我找到了android skd 的安装路径,有个sdk manage.exe 的可执行文件,我们执行一下这个文件,至于上面的AVD manage.exe是安卓虚拟设备,既然是安卓开发,那肯定需要它了,当我们也可以用真机来跑测试,回到sdk.mamage,

image.png

三.创建项目
1.填写应用名称,公司域名


image.png

2.这里的minimum sdk是可兼容的最低版本,我选择API 15 也就是android 4.0版,这应该可以兼容目前为止 所有的Android 手机了吧,毕竟Android 都出到8.0版了,
其他选项是电视,穿戴设备,汽车应用的软件开发


image.png

3.接下来就是创建活动了,这里我们选择Empty Activity来创建一个活动


image.png

4.填写活动名,和布局名,点击fish


image.png

5.项目就创建好了


image.png

6.创建Android 模拟器


image.png

点击最左边的按钮


image.png

选择合适的虚拟设备
image.png

选择版本,这里我选择adnroid7.0,其他版本,如果显示null 点击downlo下载即可


image.png

最后确认一遍模拟器的配置,点击finish即可

7.体验模拟器


image.png

image.png

这模拟器,还有有那么一点点高端的呢

这里有两个问题:
7-1.最后finish那,是灰色即创建不了模拟器,这里大概原因是电脑中的某个东东不允许你创建模拟器!


IMG_20180126_211627.jpg

解决方法:重启电脑,电脑还没开机之前按F2 进入BIOS界面 进入Configration,将lnterl Vitual Technology [Disable] 改为Enabled, 这时打开Android studio,就可以创建虚拟机了,同时我还想说一句,我只是想看到,编程界的经典语句"Hello World ",我容易吗


v2-94b046ff998812169f9dfd574fecafea_r.jpg

7-2.启动了模拟器,电脑会有些卡顿,在敲代码时,智能提示可能不会出来,就连回车都有延迟,我的解决方式是每次运行完程序都关闭模拟器,于是每次运行程序都要重启模拟器,大概需要2分钟左右才能运行一遍程序,体验极差;还有就是一些功能只能运行在真机上面,例如手机到运用手机的多媒体,调用手机摄像头等,这时只能用真机。方法很简单,电脑上安装360手机助手即可,因为每次运行都要将程序安装到手机上,所以手机设置时要允许通过USB安装程序


Screenshot_2018-01-28-14-45-09-850_com.android.se.png

8.运行程序
what? 一行代码都没写就运行程序,还有这种操作,先别急,我们先运行一下看看。


image.png

看到菜单栏有这么一个东西,左边的小锤是编译程序,中间貌似可以同过下拉列表框选择东西,没错,它就是选择你想要运行的程序,最右边运行程序


image.png

点击就会让你选择运行程序的设备,最上面时我本人的android 手机,下面时我们刚刚创建的虚拟设备
Screenshot_2018-01-28-15-52-49-922_com.example.co.png
image.png

四.分析我的第一个android 程序
我们把项目结构从android模式,切换到project模式,可以看到如下的结构


image.png
  1. .gradle和.idle
    android studio 自动生成我一些文件,无需关心
    2.app
    项目代码和资源几乎都放在这个目录下


    image.png

    2-1.bulid:目录里主要包含编译时自动生成的一些文件;
    2-2.lib:如果项目中用到第三方的jar包,就需要把这些jar包,放在lib目录下,这个目录下的jar包会自动的添加进构建路径里去
    2-3.android test :编写android test测试用例的,用于进行一些自动化测试
    2-4.java:编写java程序
    2-5.res:放置项目中用到的所有图片,字符串,布局资源,其中图片放在drawable目录下,布局放在layout目录下,字符串放在values目录下
    2-6.AndroidManifest.xml
    整个项目的配置文件,项目中用到的所有组件都需要在这个文件下注册,此外还可以为应用程序添加权限声明
    2-7.test: 再该文件下编写unit test测试用例
    2-8.proguard-rules.pro:指定代码的混淆规则,防止代码被别人破解

其他的目录大多无需关心。

五.代码分析。
1.java代码


image.png

MainActivity继承于AppCompatActivity,可以将Activity在各个版本系统新的功能和特性向下兼容,onCreate 方法的最后一行 调用了setContentView()方法为当前的活动引入了一个名为activity_main的布局,setcontent()方法,我们传进去的参数一般是一个布局文件的id,项目中的如何资源都会在R文件中生成一个唯一的id,因此我们用R.layot.布局文件名,接下来就来看看布局文件;
2.布局文件(layout目录下)


image.png

左边是它的代码,我们可以在最后一行看到 hello world 的字样,同时我们在右边的设计视图下也看到了,hello world的内容。我们之前说过组件都需要在AndroidMianifest.xml中注册的,那我们再来看看这个文件吧
3.在AndroidMianfest中注册
image.png

这里最重要的就是,一个应用程序会有很多个活动,当程序启动的时候,我们需要指定首先启动哪一个活动,这时就用到了<intent-filter></intent-filter>,inttent-filter 中的两行代码很关键,<actoin android:name="android.intent.action.MAIN"> ,<category android:name = "android.intent.category.LUANCHER">,表示MainActivity是这个活动的主活动。当点击这个App时首先启动的就是这个主活动。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,369评论 25 707
  • kubernetes借助系统的OOM KILL提升服务质量,至于什么是OOM KILL可以去网上搜一下这里不再班门...
    YiQinGuo阅读 3,921评论 0 1
  • 真的很希望你是这样的人, 不喜不悲,与世无争, 明白什么是自己真正想要, 每天安静的过着自己的生活, 不被得失羁绊...
    YNM解说阅读 242评论 0 2
  • 跟一个陌生人相识在周四,每天深刻有趣的聊天感觉对方就像是许久未见的老朋友,“我好像在哪儿见过你”,那种前世相逢的感...
    希湫明阅读 1,567评论 0 2