博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android学习笔记总结
阅读量:4352 次
发布时间:2019-06-07

本文共 6815 字,大约阅读时间需要 22 分钟。

第一步:

Android(1) - 在 Windows 下搭建 Android 开发环境,以及 Hello World 程序

 

搭建 Android 的开发环境,以及写一个简单的示例程序  

· 在 Windows 下搭建 Android 开发环境   

· Android 项目的目录结构说明 

· 写一个简单的 Hello World 程序   

一、在 Windows 下搭建 Android 开发环境 1、安装 JDK (Java Development Kit) 2、安装 Android SDK   3、安装 Eclipse 4、打开 Eclipse ,并安装其 Android 插件(ADT 打开菜单 "Help" -> "Install New Software",在 "Availabe Software" 中加入地址  ,然后安装 ADT(Android Development Tools) 5、新建 Android 项目 "New" -> Android ProjectProject Name - 项目名称;Build Target - 编译项目的 SDK 版本;Application name - 程序名称;Package name - 包名;Min SDK Version - 程序所支持的最低 SDK 版本代号(对应 1.1对应 1.5对应 1.6 6、运行 Android 项目 打开菜单 "Run" -> "Run Configurations" -> New launch configuration,设置启动项目名称,在 Android 选项卡中选择启动项目,在 Target 选项卡中设置模拟器 7、创建/使用模拟 SD  创建 SD 卡,运行类似如下命令:mksdcard -l sdcard 512M d:\android\sdcard.img 模拟器中使用 SD 卡,在项目配置的 Target 选项卡的 "Additional Emulator Command Line Options" 框中输入类似如下参数:-sdcard d:\android\sdcard.img 8、配置模拟器 运行类似如下命令:android create avd --name android15 --target 2。或者直接在菜单 "Window" -> "Android AVD Manager" 中配置模拟器 9、浏览模拟 SD 卡中的内容 调试程序,在 DDMS 中选择 "File Explorer" ,在其中的 sdcard 目录下就是模拟 SD 卡中的内容 10、查看日志 LogCat Window -> Show View -> Other -> Android -> LogCat 11、在模拟器中安装/卸载 apk 安装 apk 运行类似如下命令:adb install name.apk;卸载 apk 运行类似如下命令:adb uninstall packagename(注:这里的参数是需要卸载的包名) 12、反编译 Android 程序 解压 apk 文件,取出其中的 classes.dex 文件,运行类似如下命令:dexdump.exe -d classes.dex > dump.txt(其意思是将 classes.dex dump 出来,并将反编译后的代码保存到指定的文本文件中) 13、人品不好是出现的某些错误的解决办法 如果出现类似如下的错误等 no classfiles specified Conversion to Dalvik format failed with error 1  解决办法:Project -> Clean 出现 Android SDK Content Loader 60% (一直卡在 60% 解决办法:Project -> 去掉 Build Automatically 前面的勾 14、查看 SDK 源代码 先想办法搞到源代码,如这个地址  ,然后将其解压到 SDK 根路径下的 sources 文件夹内即可 二、Android 项目的目录结构 1src - 用于放置源程序 2gen - 自动生成 R.java 文件,用于引用资源文件(即 res 目录下的数据) 3assets - 用于放置原始文件,Android 不会对此目录下的文件做任何处理,这是其与 res 目录不同的地方 4res/drawable - 用于放置图片之类的资源;res/layout - 用于放置布局用的 xml 文件;res/values - 用于放置一些常量数据 5AndroidManifest.xml - Android 程序的清单文件,相当于配置文件,配置应用程序名称、图标、ActivityServiceReceiver 三、Hello World 程序 1res/layout/main.xml 

代码 

<?xml version="1.0" encoding="utf-8"?> <!-- 设置 ID 的方式:ID前加前缀,@+id/ 引用资源文件内字符串资源的方式:指定的资源名称前加前缀,@string/ --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:id="@+id/layout"     > <TextView       android:layout_width="fill_parent"      android:layout_height="wrap_content"      android:text="@string/hello"     /> <TextView       android:layout_width="fill_parent"      android:layout_height="wrap_content"      android:id="@+id/txt"     /> </LinearLayout>

2res/values/strings.xml 

代码 

<?xml version="1.0" encoding="utf-8"?> <resources>     <string name="hello">layout 直接调用 values 中的字符串</string>     <string name="hello2">编程方式调用 values 中的字符串</string>     <string name="app_name">webabcd_hello</string> </resources>

3res/drawable 目录下放置一个名为 icon.png 的图片文件 4AndroidManifest.xml 

代码 

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"       package="com.webabcd.hello"       android:versionCode="1"       android:versionName="1.0">     <application android:icon="@drawable/icon" android:label="@string/app_name">         <activity android:name=".Main"                   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>     <uses-sdk android:minSdkVersion="3" /> </manifest> 

5Main.java 

代码 

package com.webabcd.hello; import android.app.Activity; import android.os.Bundle; import android.widget.LinearLayout; import android.widget.TextView; public class Main extends Activity {

    /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);                  // 将指定的布局文件作为 Activity 所显示的内容         setContentView(R.layout.main);                  // 动态地在指定的容器控件上添加新的控件         TextView txt = new TextView(this);         txt.setText("动态添加控件");         // setContentView(txt);         ((LinearLayout)this.findViewById(R.id.layout)).addView(txt);                  // 引用资源文件内的内容作为输出内容         TextView txt1 = (TextView)this.findViewById(R.id.txt);         txt1.setText(this.getString(R.string.hello2));     } }

 

 

Android(2) - 布局(Layout)和菜单(Menu)

介绍 在 Android 中各种布局的应用,以及菜单效果的实现  

· 各种布局方式的应用,FrameLayout, LinearLayout, TableLayout, AbsoluteLayout, RelativeLayout   

· 为指定元素配置上下文菜单,为应用程序配置选项菜单,以及多级菜单的实现  

1、各种布局方式的演示 res/layout/main.xml

代码 

<?xml version="1.0" encoding="utf-8"?> <!--  layout_width - 宽。fill_parent: 宽度跟着父元素走;wrap_content: 宽度跟着本身的内容走;直接指定一个 px 值来设置宽 layout_height - 高。fill_parent: 高度跟着父元素走;wrap_content: 高度跟着本身的内容走;直接指定一个 px 值来设置高 --> <!-- LinearLayout - 线形布局。     orientation - 容器内元素的排列方式。vertical: 子元素们垂直排列;horizontal: 子元素们水平排列     gravity - 内容的排列形式。常用的有 top, bottom, left, right, center 等,详见文档 --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical" android:gravity="right"     android:layout_width="fill_parent" android:layout_height="fill_parent">     <!--     FrameLayout - 层叠式布局。以左上角为起点,将  FrameLayout 内的元素一层覆盖一层地显示     -->     <FrameLayout android:layout_height="wrap_content"         android:layout_width="fill_parent">         <TextView android:layout_width="wrap_content"             android:layout_height="wrap_content" android:text="FrameLayout">         </TextView>         <TextView android:layout_width="wrap_content"             android:layout_height="wrap_content" android:text="Frame Layout">         </TextView>     </FrameLayout>     <TextView android:layout_width="wrap_content"         android:layout_height="wrap_content" android:text="@string/hello" />     <!--     TableLayout - 表格式布局。         TableRow - 表格内的行,行内每一个元素算作一列         collapseColumns - 设置 TableLayout 内的 TableRow 中需要隐藏的列的列索引,多个用“,”隔开         stretchColumns - 设置 TableLayout 内的 TableRow 中需要拉伸(该列会拉伸到所有可用空间)的列的列索引,多个用“,”隔开         shrinkColumns - 设置 TableLayout 内的 TableRow 中需要收缩(为了使其他列不会被挤到屏幕外,此列会自动收缩)的列的列索引,多个用“,”隔开     -->     <TableLayout android:id="@+id/TableLayout01"         android:layout_width="fill_parent" android:layout_height="wrap_content"         android:collapseColumns="1">         <TableRow android:id="@+id/TableRow01" android:layout_width="fill_parent"             android:layout_height="wrap_content">             <TextView android:layout_width="wrap_content"                 android:layout_weight="1" android:layout_height="wrap_content"                 android:text="11" />             <TextView android:layout_width="wrap_content"                 android:layout_weight="1" android:layout_height="wrap_content"                 android:text="12" />             <TextView android:layout_width="wrap_content"                 android:layout_weight="1" android:layout_height="wrap_content"                 android:text="13" />         </TableRow>         <TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content"             android:layout_height="wrap_content">             <TextView android:layout_width="wrap_content"                 android:layout_height="wrap_content" android:text="21" />         </TableRow>     </TableLayout>     <!--     AbsoluteLayout - 绝对定位布局。         layout_x - x 坐标。以左上角为顶点         layout_y - y 坐标。以左上角为顶点

转载于:https://www.cnblogs.com/wlming/p/4554901.html

你可能感兴趣的文章
微信测试账户
查看>>
类中的静态函数和非静态函数的区别
查看>>
windows 下安装Apache
查看>>
Fedora14 mount出现错误时解决办法【亲测有效】
查看>>
Linux----常用操作
查看>>
sequence
查看>>
Delphi错误:Stack overflow的解决方法
查看>>
取消chrome(谷歌浏览器)浏览器下最小字体限制
查看>>
模板方法模式
查看>>
什么是ECC内存?
查看>>
使用Visual Studio 2013进行UI自动化测试
查看>>
13-集体照
查看>>
读了曾国藩家书,,心态逐渐平和起来。搞技术的如果缺乏信念的指引,生活会很乏味无聊!...
查看>>
160809308周子济第六次作业
查看>>
大型Web应用运行时 PHP负载均衡指南
查看>>
为phpStorm 配置PHP_CodeSniffer自动检查代码
查看>>
测试工具网址大全(转)
查看>>
ServiceStack DotNet Core前期准备
查看>>
webpack中‘vant’全局引入和按需引入【vue-cli】
查看>>
Date、String和Timestamp类型转换
查看>>