一:新建项目

File-New-Android Application Project

图:HelloAndroid的项目

src文件夹

src:存放项目的源码,在src文件夹中,系统为我们自动创建了MainActivity.java

package com.example.helloandroid;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView t=new TextView(this);t.setText("hello world!");setContentView(t);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);return true;}}

其中导入了两个类android.app.Activity和android.os.Bundle,import android.view.Menu; import android.widget.TextView; 是在TextView下添加的,在其中重写了父类的两个方法

@Override

在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性。例如,public void onCreate(Bundle savedInstanceState){…….}这种写法是正确的,如果你写成public void oncreate(Bundle savedInstanceState){…….}这样编译器回报如下错误——The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method,以确保你正确重写onCreate方法。(因为oncreate应该为onCreate)

而如果你不加@Override,则编译器将不会检测出错误,而是会认为你新定义了一个方法oncreate。

android.app.Activity类:为几乎所有的活动(activities)都是与用户交互的,你可以用方法setContentView(View)将自己的UI放到里面,有两个方法是几乎所有的Activity子类都实现的:

  1. onCreate(Bundle):初始化你的活动(Activity),比如完成一些图形的绘制。最重要的是,在这个方法里你通常将用布局资源(layout resource)调用setContentView(int)方法定义你的UI,和用findViewById(int)在你的UI中检索你需要编程地交互的小部件(widgets)。setContentView指定由哪个文件指定布局(main.xml),可以将这个界面显示出来,然后我们进行相关操作,我们的操作会被包装成为一个意图,然后这个意图对应有相关的activity进行处理。
  2. onPause():处理当离开你的活动时要做的事情。最重要的是,用户做的所有改变应该在这里提交(通常ContentProvider保存数据)。

编写java代码的目录,遵循java的命名规范

gen文件夹

其下有两个java文件。R.java文件中定义了一个类——R,R类中包含很多静态类,且静态类的名字都与res中的一个名字对应,即R类定义该项目所有资源的索引

public final class R {public static final class attr {}public static final class dimen {/**  Default screen margins, per the Android Design guidelines. Customize dimensions originally defined in res/values/dimens.xml (such asscreen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.*/public static final int activity_horizontal_margin=0x7f040000;public static final int activity_vertical_margin=0x7f040001;}public static final class drawable {public static final int ic_launcher=0x7f020000;}public static final class id {public static final int action_settings=0x7f080000;}public static final class layout {public static final int activity_main=0x7f030000;}public static final class menu {public static final int main=0x7f070000;}public static final class string {public static final int action_settings=0x7f050001;public static final int app_name=0x7f050000;public static final int hello_world=0x7f050002;}public static final class style {/** Base application theme, dependent on API level. This theme is replacedby AppBaseTheme from res/values-vXX/styles.xml on newer devices.Theme customizations available in newer API levels can go inres/values-vXX/styles.xml, while customizations related tobackward-compatibility can go here.Base application theme for API 11+. This theme completely replacesAppBaseTheme from res/values/styles.xml on API 11+ devices.API 11 theme customizations can go here. Base application theme for API 14+. This theme completely replacesAppBaseTheme from BOTH res/values/styles.xml andres/values-v11/styles.xml on API 14+ devices.API 14 theme customizations can go here. */public static final int AppBaseTheme=0x7f060000;/**  Application theme. All customizations that are NOT specific to a particular API-level can go here. */public static final int AppTheme=0x7f060001;}
}

通过R.java我们可以很快地查找我们需要的资源,另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。

包含了android的资源文件的标识符,不需要程序员维护,自动添加

Android Private Libraries文件夹

该文件夹下包括android-support-v4.jar,一个Java 归档文件,其中包含构建应用程序所需的所有的Android SDK 库(如Views、Controls)和APIs。通过android-support-v4.jar,将自己的应用程序绑定到Android SDK和Android Emulator,这允许你使用所有Android的库和包,且使你的应用程序在适当的环境中调试,例如上文中使用的MainActivity.java使用的类库

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

都来自上面的android-support-v4.jar

assets文件夹

包含应用系统需要使用到的诸如mp3、视频类的文件。

原生资源文件:保存应用的资源文件例如音频文件或者视频文件、或者不经常被用户修改的文件

res文件夹

资源目录,包含你项目中的资源文件并将编译进应用程序。向此目录添加资源时,会被R.java自动记录。新建一个项目,res目录下会有三个子目录:drawabel、layout、values。

drawable-xxdpi、包含android应用中的图片资源文件,按照清晰度:高清、清晰度低、比较清晰、超高清、非常超高清
    layout:布局文件,完成UI控件的堆放
    menu:菜单
    android的应用菜单
    values:字符资源文件,通常使用在手机的国际化

AndroidManifest.xml

项目的总配置文件,记录应用中所使用的各种组件。个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。AndroidManifest.xml将包含如下设置:application permissions、Activities、intent filters等。

如果你跟我一样是ASP.NET出生或者学过,你会发现AndroidManifest.xml跟web.config文件很像,可以把它类同于web.config文件理解。

如果你不是,你可以这样理解——众所周知xml是一种数据交换格式,AndroidManifest.xml就是用来存储一些数据的,只不过这些数据时关于android项目的配置数据。

清单文件的结构:
1.包名
2.apk的版本
3.apk的图片,说明
4.相关的授权

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.helloandroid"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="18" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name="com.example.helloandroid.MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

default.properties

记录项目中所需要的环境信息,比如Android的版本等

二:配置模拟器

windows→Android Virtual Device Manager

配置好虚拟器后就可以编译运行我们的的第一个HelloWorld程序了

run as →Android Appilcation

参考文献

  • http://www.cnblogs.com/skynet/archive/2010/04/13/1711479.html

转载于:https://www.cnblogs.com/ilooking/p/4188480.html

Android开发笔记1之HelloWorld相关推荐

  1. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述

    1.前言 数据生产和数据展示是常见的两大专业级移动GIS应用场景,这里我们针对数据生产环节的ArcGIS的离在线一体化技术给大家做一个基本的介绍和梳理. 使用ArcGIS离在线一体化技术首先需要以下基 ...

  2. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步...

    1.前言 上一篇文章中我们实现了离线要素的编辑操作,这一篇中主要介绍离在线一体化技术中最后一个环节离线数据的同步功能,通过对数据的上传,服务器端的版本化管理,实现数据生产管理的整个流程. 转载请注明出 ...

  3. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据编辑...

    1.前言 在上一篇我们已经实现了离线地理数据库的下载,这一篇我们着重介绍离线数据库的加载与编辑. 由于ArcGIS Runtime SDK for Android 10.2.X版本并没提供要素绘制功能 ...

  4. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据下载...

    1.前言 1.1.环境准备: ArcGIS for Desktop 10.4.1(10.2.1以上版本即可) ArcGIS for Server 10.4.1 (10.2.1以上版本即可) Postg ...

  5. 《ArcGIS Runtime SDK for Android开发笔记》——(7)、示例代码arcgis-runtime-samples-android的使用...

    1.前言 学习ArcGIS Runtime SDK开发,其实最推荐的学习方式是直接看官方的教程.示例代码和帮助文档,因为官方的示例一般来说都是目前技术最新,也是最详尽的.对于ArcGIS Runtim ...

  6. 《ArcGIS Runtime SDK for Android开发笔记》

    开发笔记之基础教程 ArcGIS Runtime SDK for Android 各版本下载地址 <ArcGIS Runtime SDK for Android开发笔记>--(1).And ...

  7. Android开发笔记(序)写在前面的目录

    知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平.因此博主就想,入门的东西咱就不写了,人不能老停留在入 ...

  8. Android开发笔记(一百七十九)避免方法数过多的问题

    一个大规模的App工程,往往引入了数量繁多的第三方开发库,其中既有官方的Jetpack库,也有第三方厂商的开源包.有时候运行这种App会报错"Cannot fit requested cla ...

  9. Android开发笔记(一百七十八)更安全的数据仓库DataStore

    虽然SharedPreferences用起来比较方便,但是在一些特殊场景会产生问题.比如共享参数保存的数据较多时,初始化共享参数会把整个文件加载进内存,加载耗时可能导致主线程堵塞.又如调用apply方 ...

最新文章

  1. 到外国的网站写英语留言
  2. Sql Server 常用日期格式
  3. TCP/IP学习笔记(三)TCP流量控制以及滑动窗口
  4. centos 使用mutt发送邮件带附件
  5. 杨超越微数据_资料来源同意:数据科学技能超越数据
  6. 幅度调制(AM调制、DSB(双边带)调制、SSB、VSB)
  7. emwin读取sd图片_手机内存不够用?这样清理垃圾文件和巧用SD卡扩容硬件存储空间...
  8. 倾斜摄影 实景三维建模软件photoscan教程
  9. 微软正式发布Internet Explorer 7.0
  10. C#正则提取字符串中的数字
  11. pytorch detach用法
  12. 福利最新2022年H3CNE认证网络工程师GB0-191 题库加超详细解析
  13. unity 引用 移动mm 支付sdk
  14. MagicalCoder可视化开发平台:轻松搭建业务系统,为企业创造更多价值
  15. 【Pytorch】AlexNet图像分类实战
  16. NI LabVIEW 2014SP1视觉开发必备软件和工具包
  17. 为Mac设置“屏幕使用时间”,来了解您的设备使用情况
  18. 金蝶K3采购暂估案例教程4商业模式单到冲回
  19. 天下数据详解免费空间的背后
  20. 【源码在文末】SpringSession实战使用(基于SpringBoot项目)

热门文章

  1. oracle last day比较,PLSQL LAST_DAY用法及代码示例
  2. 安装oracle10g程序异常终止,win7系统安装oracle10g提示程序异常终止的解决方法
  3. 图片裁剪(cropperjs)
  4. 在java中蓝色_Java基础
  5. python socketserver连接数量限制_python中socketserver的一个疑问
  6. win系统mysql找回密码
  7. openssh 虚拟机linux_Alpine Linux虚拟机安装过程
  8. 为什么要使用计算机协议,为什么需要网络协议
  9. css3 选择器_IT兄弟连 HTML5教程 CSS3揭秘 CSS3概述
  10. 微型计算机通信与接口技术 pdf,微机原理与接口技术 pdf