1.安装ADT(这种方式较快)
2.创建AVD
a.指定sdk环境
b.创建
运行效果
小记:
Android Development Tools (ADT)
Software Development Kit(SDK)
Unparsed aapt error(s)! Check the console for output.
@android:id/list和@id/android:list的区别
第四集:activity的主要作用
创建一个activity的方法
在androidmanifest.xml文件当中注册应用activity的方法
在activity当中添加控件的方法
容纳控件的容器
第五集:多个activity之间的关系
intent的基本作用 intent.putExtra("name",value)
intent.getStringExtra("name");
在一个activity当中启动另外一个activity的方法
使用intent在activity之间传递数据的基本方法
intent.putExtra("name","value");
intent.getStringExtra("name");
第六集:四个常用控件 textview
editview
button
menu menu.add(0,1,1,'推出') 组名,当前ID,序号,name
public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 1, 1, "退出"); menu.add(0, 2, 2, "关于"); return super.onCreateOptionsMenu(menu); }
public boolean onOptionsItemSelected(MenuItem item) { if(item.getItemId() == 1){ //对应当前ID finish(); } return super.onOptionsItemSelected(item); }
第七集:activity的生命周期
Activity03 onCreate
Activity03 onStart
Activity03 onResume
按钮跳转后
Activity03 onPause 保存之前activity的数据
Activity04 onCreate
Activity04 onStart
Activity04 onResume
Activity03 onStop 第一个不可见时;只是弹出对话框,没有完全遮住时,不调用
返回键
Activity04 onPause
Activity03 onRestart
Activity03 onStart
Activity03 onResume
Activity04 onStop
Activity04 onDestory 手动销毁,finish方法,系统内存不足自动销毁
第八集:Task基本概念
activity和task之间的关系
对话框风格activity的使用方法
栈 :先进后出 ,压栈,弹栈
手机资源不足时就会关闭掉那些调用了onPause或onStop或onDestory的activity
如果按钮跳转是弹出一个窗口,那么在第七章的流程里面
按钮跳转后不会调用 Activity03 onStop
返回键
Activity04 onPause
Activity03 onResume
第九集:activity的初步布局 --对应Layout_01,Layout_02
LinearLayout布局
TableLayout布局
第十集:activity的初步布局2 --Layout_04
嵌套布局
第十一集:activity的初步布局3
相对布局的基本概念
相对布局与其他布局的区别
相对布局常用属性介绍
RelativeLayout 相对布局
十二集:常用控件
RadioButton 和RadioGroup rg1.setOnCheckedChangeListener(new OnCheckedChangeListener()
checkbox ckTW.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
toast Toast.makeText(RadioGroupTestActivity.this, "female", Toast.LENGTH_LONG).show();
十三集:processbar style="?android:attr/progressBarStyleHorizontal"
listview
十四集:单线程与handler
消息队列 先进先出
handler.sendMessage(mess);//调用之后马上返回,代码继续进行,异步调用handler的handleMessage(mess)方法
handler.post(runn);//异步调用handler.sendMessage(mess)方法
十五集:多线程与handler
Thread.currentThread().getId();
Thread.currentThread().getName();
Bundle对象
十六集:SQLite
www.sqlite.org
adb shell
ls
cd data
ls
cd data
ls
cd databases
sqlite3 db_name
.schema 列出所有的表及建表语句
select * from table_name;
十七集:调试
logcatory及file explorers
ddms(Dalvik Debug Monitor Service 调试监控服务工具)使用,及常用调试方法
reset adb
Log.d("myDebug", "firstmsg");//自己建立一个 myDebug 的过滤器(filename随便取)就可以看到调试信息了
十八集:文件下载
十九集:contentprovider 提供一个访问数据的统一接口,在不同的应用程序之间共享数据
实现contentprovider的过程
定义一个content——uri常量
定义一个类,继承ContentProvider
实现 query、insert、update、delete、gettype和oncreate方法
在androidmanifest.xml当中进行声明
我想让除了自己以外的更多人认识我,我就把我的信息放在Content provider里共享,大家都可以看到和使用了。
你我他在android里是指不同的应用程序
那么自定义的Content provider就相当于自定义一个数据库表了?那么在andriod的一些已存在的Content provider就是一些
谷歌写给我们用的数据库表?访问这个数据库,仅仅需要知道一个url,而不需要密码什么的么,而且,我想知道这个URL如何唯一的标识其在os的位置
二十集:xml解析
DOM 将document全部载入到内存
SAX 逐行扫描,一边扫描一边解析,添加删除比较麻烦
适配器模式:需要实现一个类,而这一个类有很多的方法,但是我只需要用到这个类的几个方法而已,所以就新建一个类去实现这个类,都是空实现,然后哪个类需要实之 前那个类,就继承新建的这个类,需要哪个方法就重写哪个方法
二十一:广播机制
broadcastreceiver
二十二:广播机制2
broadcastreceiver用于监听被广播的事件(intent)为了达到这个目的,broadcastreceiver必须经行注册,两种
1.在代码中注册
2.在androidmanifest.xml当中进行注册
<receiver android:name=".MyReceive">
<intent-filter>
<action android:name="android.intent.action.EDIT" />
</intent-filter>
</receiver>
二十三:wifi
二十四:socket