一.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,
三.创建项目
1.填写应用名称,公司域名
2.这里的minimum sdk是可兼容的最低版本,我选择API 15 也就是android 4.0版,这应该可以兼容目前为止 所有的Android 手机了吧,毕竟Android 都出到8.0版了,
其他选项是电视,穿戴设备,汽车应用的软件开发
3.接下来就是创建活动了,这里我们选择Empty Activity来创建一个活动
4.填写活动名,和布局名,点击fish
5.项目就创建好了
6.创建Android 模拟器
点击最左边的按钮
选择合适的虚拟设备
选择版本,这里我选择adnroid7.0,其他版本,如果显示null 点击downlo下载即可
最后确认一遍模拟器的配置,点击finish即可
7.体验模拟器
这模拟器,还有有那么一点点高端的呢
这里有两个问题:
7-1.最后finish那,是灰色即创建不了模拟器,这里大概原因是电脑中的某个东东不允许你创建模拟器!
解决方法:重启电脑,电脑还没开机之前按F2 进入BIOS界面 进入Configration,将lnterl Vitual Technology [Disable] 改为Enabled, 这时打开Android studio,就可以创建虚拟机了,同时我还想说一句,我只是想看到,编程界的经典语句"Hello World ",我容易吗
7-2.启动了模拟器,电脑会有些卡顿,在敲代码时,智能提示可能不会出来,就连回车都有延迟,我的解决方式是每次运行完程序都关闭模拟器,于是每次运行程序都要重启模拟器,大概需要2分钟左右才能运行一遍程序,体验极差;还有就是一些功能只能运行在真机上面,例如手机到运用手机的多媒体,调用手机摄像头等,这时只能用真机。方法很简单,电脑上安装360手机助手即可,因为每次运行都要将程序安装到手机上,所以手机设置时要允许通过USB安装程序
8.运行程序
what? 一行代码都没写就运行程序,还有这种操作,先别急,我们先运行一下看看。
看到菜单栏有这么一个东西,左边的小锤是编译程序,中间貌似可以同过下拉列表框选择东西,没错,它就是选择你想要运行的程序,最右边运行程序
点击就会让你选择运行程序的设备,最上面时我本人的android 手机,下面时我们刚刚创建的虚拟设备
四.分析我的第一个android 程序
我们把项目结构从android模式,切换到project模式,可以看到如下的结构
-
.gradle和.idle
android studio 自动生成我一些文件,无需关心
2.app
项目代码和资源几乎都放在这个目录下
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代码
MainActivity继承于AppCompatActivity,可以将Activity在各个版本系统新的功能和特性向下兼容,onCreate 方法的最后一行 调用了setContentView()方法为当前的活动引入了一个名为activity_main的布局,setcontent()方法,我们传进去的参数一般是一个布局文件的id,项目中的如何资源都会在R文件中生成一个唯一的id,因此我们用R.layot.布局文件名,接下来就来看看布局文件;
2.布局文件(layout目录下)
左边是它的代码,我们可以在最后一行看到 hello world 的字样,同时我们在右边的设计视图下也看到了,hello world的内容。我们之前说过组件都需要在AndroidMianifest.xml中注册的,那我们再来看看这个文件吧
3.在AndroidMianfest中注册
这里最重要的就是,一个应用程序会有很多个活动,当程序启动的时候,我们需要指定首先启动哪一个活动,这时就用到了<intent-filter></intent-filter>,inttent-filter 中的两行代码很关键,<actoin android:name="android.intent.action.MAIN"> ,<category android:name = "android.intent.category.LUANCHER">,表示MainActivity是这个活动的主活动。当点击这个App时首先启动的就是这个主活动。