[Android]Android开发入门之HelloWorld
引言:在做Unity开发的时候,发现这么个问题,虽然Unity是跨平台的,能够进行Android,IOS,Web,PC等开发,但如果要实现一些稍微系统层的东西,还是需要通过通信,调用原系统的接口(自定义的接口)来进行开发的,所以这还是需要了解其他平台原生态的开发的,之前我Web,IOS开发有了一定了解,最近要实现一个移动平台的二维码扫描功能,由于IOS我在现有资源的情况下,不能进行真机调试,但Android平台开发我又不熟悉,所以感觉很是头疼,于是就下定决心还是要了解一下原生态的Android开发,求人不如靠己,求人只能是暂时的,再有耐心的人都经过不起你的反复的问,他人也有他人的工作!
学习一门新的技术,都是从HelloWorld开始!这个是众所周知的,输入HelloWorld也就是进入了该开发的大门!下面我就写一下学习心得!
之前我一直从事的是Visual Stdio软件下的开发,无论是cocos2dx还是.net,Unity3d,都离不开VS,感觉微软最成功的不仅仅是Windows操作系统,还有一个就是Visual Stdio集成开发环境,我之前一直没有触碰与java相关的开发方向,就是因为习惯使用了VS,并且已经爱上它了,就不习惯Eclipse开发环境,java开发的程序员或许也会有这感觉,习惯上了Eclipse开发环境也就独爱它一样。现在由于不得已还是要学学Android开发,所以还是渐渐习惯用Eclipse吧,Eclipse与其他两大集成开发环境(Xcode,VS2010)有明显不同的就是配置繁琐,不耐心的程序员,或许就已经卡在配置的路上了,但不管怎样,耐心、细心、责任心是程序员必备的素质!这里配置Android开发环境就不介绍了,自己Baidu。接下来就是从HelloWorld创建开始!
一、重要的调试工具adb的介绍
adb(android debug bridge)android调试桥
打开Android SDK目录,介绍一下重要的adb工具,内部tcp调试桥,会通过socket,模拟器来执行指定的操作
。adb这工具比较重要,我们常会用它来调试,我们可以添加在环境变量,配置操作:我的电脑->右击->属性->高级->环境变量
然后在cmd中就可以使用adb工具了
adb基本操作
a)将本地文件拷贝到手机中
adb push [源文件] [目标文件]
adb push 1.txt /mnt/sdcard/1.txt
b)将手机文件拷贝到本地
adb pull [源文件] [本地]
adb pull /data/app/Apidemos.apk C:\demo.apk
c)杀死某一进程
adb kill start-server
d)将桌面某一应用(apk)安装到手机模拟器上
adb install demo.apk
e)卸载某一应用
adb uninstall 包名(进程名)
adb uninstall com.example.android.apis
其实豌豆荚 QQ手机关机 91手机助手这些应用程序就是将这些命令封装了一下,然后执行了相应操作
f)查看adb的版本
adb version (许多莫名其妙的问题就是可能因为adb的版本原因导致的)
g)查看当前所有连接上来的设备信息
adb devices(如果是真机连接上,也会显示真机的名字)
h)来到模拟器或者真机的控制台
adb shell
Android手机其实是Linux操作系统的控制台
ls查看目录信息
ps就可以查看当前正在运行的进程信息
kill就可以杀死某一进程
#kill 127(pid进程号)
这些都是linux的命令了,就不详细介绍了!
ctrl+f11切换屏幕横竖屏
二、HelloWorld开发
1.基本创建
File->New->Android Application Project
生成的目录
2.生成的目录解析
project.properties 文件夹
指定开发使用的android.jar的版本
android-17 Android 4.2.2
android-8 Android 2.2
API级别与NDK的对应关系如下:
| Code name | Version | API level |
|---|---|---|
| (no code name) | 1.0 | API level 1 |
| (no code name) | 1.1 | API level 2 |
| Cupcake | 1.5 | API level 3, NDK 1 |
| Donut | 1.6 | API level 4, NDK 2 |
| Eclair | 2.0 | API level 5 |
| Eclair | 2.0.1 | API level 6 |
| Eclair | 2.1 | API level 7, NDK 3 |
| Froyo | 2.2.x | API level 8, NDK 4 |
| Gingerbread | 2.3 - 2.3.2 | API level 9, NDK 5 |
| Gingerbread | 2.3.3 - 2.3.7 | API level 10 |
| Honeycomb | 3.0 | API level 11 |
| Honeycomb | 3.1 | API level 12, NDK 6 |
| Honeycomb | 3.2.x | API level 13 |
| IceCreamSandwich | 4.0.1 - 4.0.2 | API level 14, NDK 7 |
| IceCreamSandwich | 4.0.3 | API level 15 |
AndroidManifest.xml
将我们应用到的信息给注册到Android系统上,相当于注册表
注册了包名、版本号
<activity>节点是我们应用程序的主界面
修改图标,添加节点信息
在res文件加下新建drawable文件夹作为存放图片的文件夹,放一个5.png的图标
android:icon = "@drawable/5"
res文件夹
values文件夹下面的strings.xml是配置app的名字已经启动文本,这里修改一下app的名字
layout文件夹下的activity_main.xml是界面布局的文件,点击GraphicalLayout就是界面的预览,
点击activity_main.xml修改文本信息,改成“Android开发,我要征服你”
所有res文件下的资源配置信息,我们在gen目录包下面都会有一个R.java,这个是由aadt工具自动生成的,都是以一个int类型的引用形式存在的,我们在res/values/strings.xml下添加一个节点<string name= "myname">丁小未</string>
然后去看R文件,会发现自动生成了一个
public static final int myname=0x7f050003;与之对应的引用
R文件的作用:为了方便程序中重复的使用定义的资源文件,做到程序跟资源相分离,然后我们来解释一下之前写的android:icon="@drawable/5",这样写的道理
@代表R文件,drawable就是代表R类的内部类,5是指内部类里面的5所指向的地址的图标
总而言之就是res资源文件R文件都会自动生成一个int类型的节点信息来同意管理资源
最后介绍最关键的src(源码文件夹)/MainActivity文件,Android开发每一个Activity都是对应这一个与之对应的界面
类比:做jsp开发的时候,.jsp文件都是对应着一个用户可以见到的网页;.net开发中,.aspx文件也是用户可以见到的动态网页,这里采用了MVC的这种模式,是采用这种Activity类来实现用户可见的界面
双击MainActivity.java文件,看到onCreate方法,是在应用第一次启动的时候执行的方法,其中有这么一段代码
setContentView(R.layout.activity_main);这就是设置activity的布局,我们可以自定义布局,拖动一些控件到activity上
布局的就是R文件下layout节点下activity_main的资源,对应于res/layout/activity_main.xml文件,Android开发最重要的就是这个R文件
常见错误:
1.例如如果注册表文件 AndroidManifest.xml中android:name写错了,系统启动的时候会报一个加载出错,因为系统在启动的时候首先就是去访问该注册表的文件,
由于清单文件配置出错,系统找不到与之对应的activity
2.AndroidManifest.xml中
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
这段配置文件的作用:在luncher程序里面生成一个应用程序的图标,如果我们删了,重新启动,log日志会显示安装成功HelloWorlddown,但我们点击应用图标却会提示我们没有安装应用程序!
[Android]Android开发入门之HelloWorld的更多相关文章
- 一看就懂的Android APP开发入门教程
一看就懂的Android APP开发入门教程 作者: 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Android APP开发入门教程,从SDK下载.开发环境搭建.代码编写.APP打包等步骤 ...
- Android Wear 开发入门
大家好,我是陆嘉杰,我是一名Android开发者.我想和大家进行一些技术交流,希望越来越多的人能和我成为好朋友. 大家都知道,智能手表是下一个开发的风口,而这方面的技术又属于前沿,所以和大家分享下An ...
- Android APP开发入门教程-Button
代码编写 做好准备工作后,终于可以开始写我们的hello android了,在开始编写代码之前,我们先了解几个文件: res/layout/main.xml App主窗体布局文件,你的应用长什么样都在 ...
- Android WebRTC开发入门
在学习 WebRTC 的过程中,学习的一个基本步骤是先通过 JS 学习 WebRTC的整体流程,在熟悉了整体流程之后,再学习其它端如何使用 WebRTC 进行互联互通. 申请权限 Camera 权限 ...
- Android基础开发入门(一)
前言:我学了一年多的C#(从学编程算起,也没有两年,我现在大二下),中间也一直在学WP开发,虽然技术不咋地,很渣渣,但微软在Build大会上宣布的策略让我觉得有必要学习一下安卓开发了.关于微软的策略, ...
- 【转】Android NDK开发入门实例
写这个,目的就是记录一下我自己的NDK是怎么入门的.便于以后查看,而不会忘了又用搜索引擎一顿乱搜.然后希望能够帮助刚学的人入门. 先转一段别人说的话:“NDK全称:Native Development ...
- android 底层开发入门(一)
第一个Linux驱动程序:统计单词个数 一.首先了解一下: 打印机驱动写入数据:对于打印机驱动来说,需要接收这些被写入的数据,并将它们通过PC的并口.USB等端口发送给打印机.要实现这一过程就需要Li ...
- Android NDK开发入门实例
AndroidNDK是能使Android应用开发者把从c/c++编译而来的本地代码嵌入到应用包中的一系列工具的组合. 注意: AndroidNDK只能用于Android1.5及以上版本中. I. An ...
- Android Studio开发入门-引用jar及so文件
作者:王先荣 最近初学安卓开发,因为以前从未用过JAVA,连基本的语法都要从头开始,所以不太顺利.在尝试使用百度语音识别引擎时遇到了如何引用jar及so文件的问题.在GOOGLE加多次尝试之后, ...
随机推荐
- 教你一招:Word中的文字转换成表格,把表格转换成文字
在使用office软件时,常常会在Word中加入表格,这时候我们一般想到的是,建立表格,然后一格一格的填写;或者用Excel表格制作在复制到Word文档中.其实在Word中就可以将文本文档转换成电子表 ...
- 解决:/bin/bash: mvn: 未找到命令
在终端执行: sudo apt-get install maven
- python中文分词:结巴分词
中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分词.其基本实现原理有三点: 基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG) 采用了动态规 ...
- React.js入门笔记
# React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...
- 8-9 MyBatis基础课
慕课网,'通过自动回复小机器人学习Mybatis',看了一半,没网了... Jsp+servlet+jdbc
- 浅谈MVC中路由
引言 学习ASP.NET MVC 路由这一关是肯定必不可少的.这一节,我们就来简单介绍下MVC中的路由机制.简单的路由机制相信大家都已了解,这一节主要介绍路由中很少使用的部分. 使用静态URL片段 在 ...
- 1.0、Struts2的简单搭建方法
一.Struts2:是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet:用于jsp页面与Java代码之间的交互. 1.核心:Filter拦截器,对所有的请求进行拦截. 2.工作 ...
- noip2015 运输计划
描述 公元 2044 年,人类进入了宇宙纪元.L 国有 nn 个星球,还有 n−1n−1 条双向航道,每条航道建立在两个星球之间,这 n−1n−1 条 航道连通了 L 国的所有星球. 小 P 掌管一家 ...
- Java_Array数组1
package org.array.demo; /** * 数组可以看成一组相同属性的元素的集合 * 1.静态声明 * 静态声明的格式: * 数组类型[] 标识 = new 数组类型[数组长度]; * ...
- CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(4)构造尺寸更灵活的背景
相比传统的图片背景来说,使用CSS构造背景色不仅可以降低网络传输的开销,更由于其尺寸的可控性受到开发者的青睐. 如设计师设计了一张背景图片作为标题背景,如图5.18所示.对于用电脑浏览网页的用户来说, ...