我的Android第二章:Android目录结构
嗨!各位,小编又和大家分享知识啦,在昨天的博客笔记中小编给大家讲解了如何去配置Android工具以及SDK中的一些配置,那在今天的学习小编会带给大家哪些Android知识呢?首先我们看一下今天的学习目录吧。
知识一:了解Android项目目录结构
知识二:Android的配置文件(清单文件)
知识三:了解DDMS的作用
知识四:adb执行命令和配置
知识五:简单案例(打电话)
Android项目的目录结构
- Activity:应用被打开时显示的界面
- src:项目代码
- R.java:项目中所有资源文件的资源id,在文件下可以通过id读取到layout中的文件信息,相当于程序的资源指针,添加任意资源都会自动生成一个相应的资源id,这文件不要手动将它删除
- Android.jar:Android的jar包,导入此包方可使用Android的api
- libs:导入第三方jar包
- assets:存放资源文件,比方说mp3、视频文件
- bin:存放编译打包后的文件
- res:存放资源文件,存放在此文件夹下的所有资源文件都会生成资源id
- drawable:存放图片资源
- layout:存放布局文件,把布局文件通过资源id指定给activity,界面就会显示出该布局文件定义的布局
- menu:定义菜单的样式
- Strings.xml:存放字符串资源,每个资源都会有一个资源id
- AndroidManifest.xml:是你整个Android项目的配置文件,定义的四大组件都要在该文件下进行注册,还有使用应用权限的添加声明
Android的配置文件(清单文件)
-
指定应用的包名
package="com.itheima.helloworld"
- data/data/com.itheima.myFirstAndroid(上面代码指定的包名)
- 应用生成的文件都会存放在此路径下
-
Android的四大组件在使用前全部需要在清单文件中配置
- 配置对整个应用生效
- 配置对该activity生效
DDMS
- Dalvik debug monitor service
- Dalvik调试监控服务:在该调试控制器中可以看到你对应的设备连接信息,还有你与哪些设备建立了连接操作
adb执行命令和配置
Android debug bridge:安卓调试桥:adb是Eclipse与服务器设备建立的连接桥梁,adb程序能够可以给任何一款Android设备建立连接,在adb程序还可以获取你当前连接设备的所有信息
在启用adb程序时我们可以方便快捷的使用如下命令
- adb start-server:启动adb进程
- adb kill-server:杀死adb进程
- adb devices:查看当前与开发环境连接的设备,此命令也可以启动adb进程
- adb install XXX.apk:往模拟器安装apk
- adb uninstall 包名:删除模拟器中的应用
- adb shell:进入linux命令行
- ps:查看运行进程
- ls:查看当前目录下的文件结构
- netstat -ano:查看占用端口的进程
哈哈,可能有些学者已经遇到问题了,就是在打开DOM窗口执行命令时候怎么执行不了呢?
adb配置
没关系,问题好解决,只需要配置一下adb的环境变量即可
首先打开 控制面板-->系统和安全-->系统 -->高级设置-->环境变量 -->Path变量
点击编辑:首先要找到你的sdk中存放adb.exe文件目录
获取该目录的路径
注:演示路径:F:\AndroidStudy\adt-bundle-windows-x86_64-20140702\sdk\platform-tools
然后将该路径复制到你的Path变量值中即可
简单案例(打电话)
功能:用户输入一个号码,点击拨打按钮,启动系统打电话的应用把号码拨打出去
1.新建一个Android工程
2.点击res 目录下的layout文件打开activity_main.xml 配置文件
3.生成几个控件,一:文本编辑控件、二:按钮控件
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="请输入你要拨打的电话号码" /> <EditText android:id="@+id/edit_Test" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/btn_cell" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="打电话" /> </LinearLayout>
注1:组件必须设置宽高,否则不能通过编译
android:layout_width="wrap_content" android:layout_height="wrap_content"
为了方便我们控制布局内容我们将xml中的 <RelativeLayout ></RelativeLayout >改为了<LinearLayout></LinearLayout>
以下是控件生成的效果图
注2:如果相对应的控制是自己手动生成的,那么必须指定一个控件Id android:id="@+id/textView1" 否则运行出错
android:id="@+id/textView1"
4.编写我们的Java代码
点击src 下的MainActivity.java文件 ,编写如下代码
package com.example.myfirstandroid; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取一个btn_cell按钮对象 Button btn = (Button)this.findViewById(R.id.btn_cell); //给该按钮对象绑定一个按钮监听事件 btn.setOnClickListener(new MyListener()); } //编写一个监听内部类实现OnClickListener监听接口 class MyListener implements OnClickListener{ @Override //重写该接口的单击事件方法 public void onClick(View v) { //获取编辑文本对象 EditText editTest = (EditText)findViewById(R.id.edit_Test); //获取该编辑文本的内容 String number = editTest.getText().toString() ; //获取一个系统内置的一个打电话的功能,告诉系统我们要执行打电话操作 //获取一个创建图对象 Intent intent = new Intent(); //将动作封装到创建图中 intent.setAction(Intent.ACTION_CALL); //设置打给谁操作 intent.setData(Uri.parse("tel:" + number)); //以上执行完毕将该动作告诉系统 startActivity(intent); } } }
以上简单小程序代码已经写完了,赶紧运行试一下吧!
总结:今天小编的Android知识点已经分享完了,今天的学习内容不多只是大致理解一下Android程序基本结构,该案例中也运用了内部类的定义,如果不懂内部类操作的学者也可以参照一下小编编写的内部类学习笔记也许会帮助到你哦!地址:http://www.cnblogs.com/xiaotaojing/p/6069184.html 因为内部类的定义在Android的开发中非常常见也经常使用,如果有某些学者对该篇比较有不懂的或者有疑惑的地方可以给小编留言哦!谢谢