Android学习笔记总结初学者必看_android学习笔记总结
Android学习笔记总结初学者必看由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“android学习笔记总结”。
Android学习笔记总结
第一步:
Android(1)项目名称;Build Target程序名称;Package name程序所支持的最低 SDK 版本代号(2 对应 1.1,3 对应 1.5,4 对应 1.6)
6、运行 Android 项目
打开菜单 “Run”-> “Run Configurations”-> New launch configuration,设置启动项目名称,在 Android 选项卡中选择启动项目,在 Target 选项卡中设置模拟器
7、创建/使用模拟 SD 卡
创建 SD 卡,运行类似如下命令:mksdcard-l sdcard 512M d:androidsdcard.img 模拟器中使用 SD 卡,在项目配置的 Target 选项卡的 “Additional Emulator Command Line Options” 框中输入类似如下参数:-sdcard d:androidsdcard.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 文件,取出其中的 claes.dex 文件,运行类似如下命令:dexdump.exe-d claes.dex > dump.txt(其意思是将 claes.dex dump 出来,并将反编译后的代码保存到指定的文本文件中)
13、人品不好是出现的某些错误的解决办法 如果出现类似如下的错误等 no clafiles specified Conversion to Dalvik format failed with error 1 解决办法:Project-> Clean 出现 Android SDK Content Loader 60%(一直卡在 60%)解决办法:Project-> 去掉 Build Automatically 前面的勾
14、查看 SDK 源代码
先想办法搞到源代码,如这个地址 http://www.daodoc.com/android.asp,然后将其解压到 SDK 根路径下的 sources 文件夹内即可
二、Android 项目的目录结构
1、src自动生成 R.java 文件,用于引用资源文件(即 res 目录下的数据)
3、aets用于放置图片之类的资源;res/layout用于放置一些常量数据
5、AndroidManifest.xml布局(Layout)和菜单(Menu)介绍
在 Android 中各种布局的应用,以及菜单效果的实现
各种布局方式的应用,FrameLayout, LinearLayout, TableLayout, AbsoluteLayout, RelativeLayout
为指定元素配置上下文菜单,为应用程序配置选项菜单,以及多级菜单的实现
1、各种布局方式的演示 res/layout/main.xml 代码
gravity层叠式布局。以左上角为起点,将 FrameLayout 内的元素一层覆盖一层地显示-->
android:layout_height=“wrap_content” android:text=“FrameLayout”>
android:layout_height=“wrap_content” android:text=“Frame Layout”>
android:layout_height=“wrap_content” android:text=“@string/hello” />
TableLayout表格内的行,行内每一个元素算作一列
collapseColumns设置 TableLayout 内的 TableRow 中需要拉伸(该列会拉伸到所有可用空间)的列的列索引,多个用“,”隔开
shrinkColumns绝对定位布局。layout_xy 坐标。以左上角为顶点-->
android:layout_width=“fill_parent”>
android:layout_height=“wrap_content” android:text=“AbsoluteLayout”
android:layout_x=“100px” android:layout_y=“100px” />
// ContextMenu.setHeaderTitle()新增菜单项后的返回类型,针对菜单项的其他设置在此对象上操作 menu.add(1, 1, 1, “菜单2”).setCheckable(true);} // 创建 R.id.txt2 的上下文菜单(多级上下文菜单)
else if(v ==(TextView)this.findViewById(R.id.txt2)){
// ContextMenu.addSubMenu(“菜单名称”)设置菜单项的图标
// MenuItem.setTitleCondensed()设置选中此菜单项的快捷键
// 注:菜单项超过 6 个的话,第 6 个菜单将会变为 More 菜单,多余的菜单会在单击 More 菜单之后显示出来
menuItem.setIcon(R.drawable.icon01);menuItem.setTitleCondensed(“菜单1”);menuItem.setAlphabeticShortcut('a');
menu.add(0, 1, 1, “菜单2”).setIcon(R.drawable.icon02);menu.add(0, 2, 2, “菜单3”).setIcon(R.drawable.icon03);menu.add(0, 3, 3, “菜单4”);menu.add(0, 4, 4, “菜单5”);menu.add(0, 5, 5, “菜单6”);menu.add(0, 6, 6, “菜单7”).setIcon(R.drawable.icon04);menu.add(0, 7, 7, “菜单8”).setIcon(R.drawable.icon05);
return true;}
// 重写 onOptionsItemSelected 用以响应选项菜单 @Override public boolean onOptionsItemSelected(MenuItem item){ super.onOptionsItemSelected(item);
Toast.makeText(Main.this, “被单击的菜单项为:” + String.valueOf(item.getItemId()), Toast.LENGTH_SHORT).show();
return false;} }
Android(3)活动(Activity), 服务(Service), 广播(Broadcast), 广播接收器(BroadcastReceiver)介绍
在 Android 中使用 Activity, Service, Broadcast, BroadcastReceiver 活动(Activity)相当于后台运行的 Activity
广播(Broadcast)用于接收广播
Intent正常理解就好
* bindService()控件(View)之TextView, Button, ImageButton, ImageView, CheckBox, RadioButton, AnalogClock, DigitalClock 介绍
在 Android 中使用各种控件(View) TextView按钮控件
ImageButton图片显示控件 CheckBox单选框控件
AnalogClock电子表控件
1、TextView 的 Demo textview.xml 代码
android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>
android:layout_width=“wrap_content” android:layout_height=“wrap_content”>
_Button.java 代码
package com.webabcd.view;
import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;
public cla _Button extends Activity {
@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.button);
setTitle(“Button”);
Button btn =(Button)this.findViewById(R.id.button);btn.setText(“click me”);
// setOnClickListener()图片按钮控件-->
android:layout_width=“wrap_content” android:layout_height=“wrap_content”>
_ImageButton.java 代码
package com.webabcd.view;
import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageButton;import android.widget.TextView;
public cla _ImageButton extends Activity {
@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.imagebutton);
setTitle(“ImageButton”);
ImageButton imgButton =(ImageButton)this.findViewById(R.id.imageButton);// 设置图片按钮的背景
imgButton.setBackgroundResource(R.drawable.icon01);
// setOnClickListener()图片显示控件-->
android:layout_height=“wrap_content”>
_ImageView.java 代码
package com.webabcd.view;
import android.app.Activity;import android.os.Bundle;
import android.widget.ImageView;
public cla _ImageView extends Activity {
@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.imageview);
setTitle(“ImageView”);
ImageView imgView =(ImageView)this.findViewById(R.id.imageView);// 指定需要显示的图片
imgView.setBackgroundResource(R.drawable.icon01);} }
5、CheckBox 的 Demo checkbox.xml 代码
android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>
android:layout_height=“wrap_content” android:id=“@+id/textView” />
chk.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){ TextView txt =(TextView)_CheckBox.this.findViewById(R.id.textView);txt.setText(“CheckBox01 的选中状态:” + String.valueOf(isChecked));} });} }
6、RadioButton 的 Demo radiobutton.xml
代码
android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>
android:layout_height=“wrap_content” android:id=“@+id/textView” />
checkedButton响应单选框组内的选中项发生变化时的事件
group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){ @Override public void onCheckedChanged(RadioGroup group, int checkedId){ TextView txt =(TextView)_RadioButton.this.findViewById(R.id.textView);txt.setText(((RadioButton)findViewById(checkedId)).getText()+ “ 被选中”);} });} }
7、AnalogClock 的 Demo analogclock.xml 代码
android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>
android:layout_width=“wrap_content” android:layout_height=“wrap_content”>
_DigitalClock.java 代码
package com.webabcd.view;
import android.app.Activity;import android.os.Bundle;
public cla _DigitalClock extends Activity {
@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.digitalclcok);
setTitle(“DigitalClcok”);} }
Android(6)日期选择控件 TimePicker双状态按钮控件 EditText进度条控件 SeekBar支持自动完成功能的可编辑文本控件 MultiAutoCompleteTextView日期选择控件-->
android:layout_width=“wrap_content” android:layout_height=“wrap_content”>
_DatePicker.java 代码
package com.webabcd.view;
import android.app.Activity;import android.os.Bundle;
public cla _DatePicker extends Activity {
@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.datepicker);
// 具体的应用可参见对话框中的示例 setTitle(“DatePicker”);} }
2、TimePicker 的 Demo timepicker.xml
代码
android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>
textOn当按钮状态为 false 时所显示的文本-->
android:layout_width=“wrap_content” android:layout_height=“wrap_content”
android:textOn=“关闭” android:textOff=“打开” />
_ToggleButton.java 代码
package com.webabcd.view;
import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.ToggleButton;
public cla _ToggleButton extends Activity {
@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.togglebutton);
setTitle(“ToggleButton”);
final ToggleButton btn =(ToggleButton)this.findViewById(R.id.toggleButton);// setOnClickListener()双状态按钮的按钮状态 txt.setText(“按钮状态:” + String.valueOf(btn.isChecked()));} });} }
4、EditText 的 Demo edittext.xml 代码
android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>
style=“?android:attr/progreBarStyleLarge” android:layout_width=“wrap_content”
android:layout_height=“wrap_content” />
android:layout_width=“wrap_content” android:layout_height=“wrap_content” />
style=“?android:attr/progreBarStyleSmall” android:layout_width=“wrap_content”
android:layout_height=“wrap_content” />
style进度的最大值
progre第二进度位置
-->
style=“?android:attr/progreBarStyleHorizontal” android:layout_width=“200px”
android:layout_height=“wrap_content” android:max=“100” android:progre=“50” android:secondaryProgre=“75” />
_ProgreBar.java 代码
package com.webabcd.view;
import android.app.Activity;import android.os.Bundle;import android.view.Window;
// 另见对话框中的进度条
public cla _ProgreBar extends Activity {
@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);
// 设置特性以允许在应用程序的标题栏上显示进度条(条状)requestWindowFeature(Window.FEATURE_PROGRESS);// 设置特性以允许在应用程序的标题栏上显示进度条(圆圈状)requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
this.setContentView(R.layout.progrebar);
setTitle(“ProgreBar”);
// 在标题栏上显示进度条(条状)setProgreBarVisibility(true);// 在标题栏上显示进度条(圆圈状)
setProgreBarIndeterminateVisibility(true);
// 指定进度条的进度 setProgre(50 * 100);setSecondaryProgre(75 * 100);
} }
6、SeekBar 的 Demo seekbar.xml 代码
android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>
progre第二进度位置-->
android:layout_height=“wrap_content” android:max=“100” android:progre=“50” android:secondaryProgre=“75” />
android:layout_height=“wrap_content” />
android:layout_height=“wrap_content” />
_SeekBar.java 代码
package com.webabcd.view;
import android.app.Activity;import android.os.Bundle;import android.widget.SeekBar;import android.widget.TextView;
public cla _SeekBar extends Activity implements
SeekBar.OnSeekBarChangeListener {
SeekBar mSeekBar;TextView mProgreText;TextView mTrackingText;
@Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState);this.setContentView(R.layout.seekbar);
setTitle(“SeekBar”);
mSeekBar =(SeekBar)findViewById(R.id.seekBar);// setOnSeekBarChangeListener()-响应拖动进度条事件 mSeekBar.setOnSeekBarChangeListener(this);
mProgreText =(TextView)findViewById(R.id.progre);mTrackingText =(TextView)findViewById(R.id.tracking);}
// 拖动进度条后,进度发生改变时的回调事件
public void onProgreChanged(SeekBar seekBar, int progre, boolean fromTouch){ mProgreText.setText(progre + “%”);}
// 拖动进度条前开始跟踪触摸
public void onStartTrackingTouch(SeekBar seekBar){ mTrackingText.setText(“开始跟踪触摸”);}
// 拖动进度条后停止跟踪触摸
public void onStopTrackingTouch(SeekBar seekBar){ mTrackingText.setText(“停止跟踪触摸”);} }
7、AutoCompleteTextView 的 Demo autocompletetextview.xml 代码