1.创建Android程序

Android入门(4) 开发第一个Android程序_第1张图片


Android入门(4) 开发第一个Android程序_第2张图片

Android入门(4) 开发第一个Android程序_第3张图片

1.1创建AndroidProject

Projectname:项目名

BuildTargetAndroid版本

Applicationname:程序名,显示在程序列表中,以及程序启动后的标题栏

Packagename:包名,程序的唯一标识

CreateActivity:选择程序启动时是否创建一个窗体,设置主窗体名字

MinSDKVersion:设置运行该程序所需的最低版本

2.安装、卸载程序

2.1Eclipse安装

右键点击工程–Runas–AndroidApplication

2.2虚拟机卸载

设置–应用程序–管理应用程序–选中要卸载的程序–卸载

3.了解项目目录结构

Android入门(4) 开发第一个Android程序_第4张图片

3.1 src:源代码

3.2gen:系统自动生成的文件

R.java中记录了项目中各种资源ID(包括图片、各种ViewID等等)

3.3 res:系统资源,所有文件都会在R文件生成资源ID

drawable:图片

layout:界面布局 main.xml、各种自定义的layoutxml文件

values:数据 strings.xml文件,存放各种国际化的字符串ID

anim:定义动画的XML

raw:原生文件

3.4 assets:资源路径,不会在R文件注册

3.5libs外部的jar(此文件夹根据需要手工创建)

3.6 project.properties:供Eclipse使用,读取该项目使用Android版本号。早期版本名为:default.properties

3.7 AndroidManifest.xml:清单文件,在软件安装的时候被读取

Android中的四大组件(ActivityContentProviderBroadcastReceiverService)都需要在该文件中注册

程序所需的权限也需要在此文件中声明,例如:电话、短信、互联网、访问SD

3.8 bin:二进制文件,包括class、资源文件、dexapk

3.9 proguard.cfg:用来混淆代码的配置文件,防止别人反编译

3.2.1HelloWorldActivity类的介绍

packagecom.test.app1;

importandroid.app.Activity;

importandroid.os.Bundle;

/**

*eclipse自动创建出来的activity,实现了Activity类。

*@authorchen

*

*/

publicclassHelloWorldActivityextendsActivity{

/**

*onCreate方法,在Activity开启时自动调用onCreate方法。重写此方法,

*即可让android虚拟机在开启此程序的activity时自动调用此方法。

*/

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);//开启窗口相关设置信息

/**

*将res文件夹下的layout文件夹中的main.xml设置的相关控件设置到

*窗口对象的内容中去,即便于显示出来。

*/

setContentView(R.layout.main);

}

}

3.2.2Res文件夹下layout文件夹中的main.xml的介绍

<?xmlversion="1.0"encoding="utf-8"?>

<!--布局文件,Linearlayout为线性的布局。可以横排或竖排-->

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical">

<!--五大布局:LinearLayout线性、RelativeLayout相对、FrameLayout针式、TableLayout表格、AbsoluteLayout绝对布局

都是可以嵌套的。比如LinearLayout布局,还可以指定orientation排列方向的值为vertical垂直式或horizontal水平式

当layout_width的值可以选择:

wrap_content根据内容大小填满宽度

fill_parent根据上级控件宽度填满

match_parent与fill_parent作用一致,都是根据上线控件宽度而来填充满本级宽度。

-->

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"/>

<!--android:text:控制文本,可国际化到strings.xml文件中。

android:inputType:输入内容的类型,可以为phone、textPersonName、textPassword、textEmailAddress等等值

android:singleLine:指定是否为单行true|false,默认是多行即false。

android:layout_gravity:指定摆放位置,可取值:left、right、center等等也可取多值如bottom|right

android:hint:用于EditText等控件中,指提示用户输入内容,当用户光标点击入此框中,提示内容消失。

android:id指定此控件的id,以便在java文件中,用可通过findViewById拿到此控件对象进行操作。

android:paddingLeft:相关的padding内边距多少dp等,与css中很相似

android:layout_marginLeft:相关的margin外边距多少dp等,与css中很相似

RelativeLayout页面中,还有特殊的相关属性

android:layout_toRightOf:值为某一控件的ID号。代表此控件的摆放位置在,某一控件的右边。

android:layout_toLeftOf:值为某一控件的ID号。代表此控件的摆放位置在,某一控件的左边。

android:layout_above:值为某一控件的ID号。代表此控件的摆放位置在,某一控件的上边。

android:layout_below:值为某一控件的ID号。代表此控件的摆放位置在,某一控件的下边。

android:layout_alignParentRight:值为true|false。代表是否与上级控件的右边对齐。

-->

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/test"/>

</LinearLayout>

3.2.3.Res文件夹下values文件夹中的strings.xml的介绍

<?xmlversion="1.0"encoding="utf-8"?>

<!--存放国际化的一些相关资源-->

<resources>

<!--其中文件中用到字符串,strings.xml文件中若有定义可以这样直接引用:@string/hello-->

<stringname="hello">真的很好呢</string>

<stringname="test">你好吗</string>

<stringname="app_name">第一个应用呢</string>

<stringname="app_name_title">第一个应用主界面</string>

</resources>

3.2.3根目录中AndroidManifest.xml清单文件的介绍

<?xmlversion="1.0"encoding="utf-8"?>

<!--package属性即为应用唯一的id号了。一个手机就只能有package不能重名。最后被发布到手机的

/data/data文件夹下。在手机的设置-应用程序-中可依据此管理程序应用。安装或卸载等。

-->

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

package="com.test.xml"

android:versionCode="1"

android:versionName="1.0">

<uses-sdkandroid:minSdkVersion="10"/>

<!--androidjunittest的相关配置,targetPackage必须指定,

若是本工程要填写本工程mainfest要标签package属性的值中

若是其它的工程,若打到其它工程后,找到其它工程的manifest文件,并把其中的package属性值拷贝复制到targetPackage中-->

<instrumentationandroid:targetPackage="com.test.xml"android:name="android.test.InstrumentationTestRunner"/>

<!--配置声明相关的权限,写sd卡要外存储设置的写权限即WRITER_EXTERNAL_STORAGE

程序中用到电话了,则需要配置声明CALL_PHONE的权限

发短信需要用到SEND_SMS的权限等等

-->

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

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

<!--application中的android:label为应用名称,在手机的设置-应用程序-安装/卸载时看成到的名称-->

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name">

<!--uses-libraryandroid:name="android.test.runner"声明此项目需要用到junit的类库-->

<uses-libraryandroid:name="android.test.runner"/>

<!--activity中的android:label,就手机菜单界面和打开时的标题名称、一般与application中的label是相同的,当然也可不同-->

<activity

android:name=".MainActivity"

android:label="@string/app_name">

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

<!--四大组件ActivityBroadcastReceiverContentProviderService都需要此配置-->

</application>

</manifest>


4.程序启动过程

4.1 Eclipse.java源文件编译成.class

4.2 使用dx工具将所有.class文件转换为.dex文件

4.3 再将.dex文件和所有资源打包成.apk文件

4.4 将.apk文件安装到虚拟机完成程序安装

4.5 启动程序–开启进程–开启主线程

4.6 创建Activity对象–执行OnCreate()方法

4.7 按照main.xml文件初始化界面


更多相关文章

  1. Android SAX和DOM解析XML文件
  2. Android设置Activity(界面)为全屏显示的两种方法 xml和java程序
  3. Android之进度条控件和常用资源分类总结
  4. android so文件是什么
  5. (转)Android AndroidManifest.xml文件的android:supportsRtl属性详
  6. Android评分控件RatingBar使用实例解析
  7. 【Android开发学习02】Android应用程序的调试
  8. Android的多语言文件转IOS多语言文件格式
  9. Android 自动编译、打包生成apk文件 1 - 命令行方式

随机推荐

  1. Dive into BERT:语言模型与知识
  2. 用腻了 CRF,试试 LAN 吧?
  3. GitHub Actions的机器学习推理上线,推进测
  4. 从老宋的角度看,自然语言处理领域如何学习
  5. 社保系统也没躲过******,恶意软件开始篡改
  6. 最新: Top5刊不大可能发表COVID-19相关的
  7. 我不太懂BERT系列——BERT预训练实操总结
  8. linux学习第三课
  9. nature发声: 2020年要么选学术要么选孩子
  10. 树与二叉树入门(一)