《android开发案例驱动教程》
chat 2:
1. 按 Ctrl+F11 F12 可切换模拟器的横屏竖屏
chat 3:
1. 开发google map必须使用带有google api开发包
2. textview相当于label标签,UI的文本信息最好放在string.xml等资源文件中
3. src是源代码目录,bin是编译后的安装文件目录,先把.java编译成classes.dex文件(dalvik虚拟机),在打包成apk包。gen存放所有自动生成的文件,关键的文件时R.java,R包含静态类,与res的名字对应;res包含项目的资源文件,向里面拷贝文件会被R.java自动记录,子目录有drawable、layout、values,drawable-hdpi放高质量的图片,drawable-mdpi放中质量的,ldpi放低质量的;layout有默认的main.xml布局文件,可添加;values放参数值目录,如软件需要显示的各种文字和一些数据,可存不同类型的数据,如arrays.xml,colors.xml,styles.xml等;raw目录,需要自己创建,可以将I/O流访问的音频文件放在里面,通过R.raw.xxx访问;assets目录,也可存放资源文件,但需要代码访问。
4. androidmanifest.xml是项目总配置文件,必需,记录用到的所有组件,列出了程序提供的功能,可以知道程序的服务权限,如GPS服务,互联网服务,短信服务等。
activity 节点下,intent-filter下的action表示启动位置,category表示启动时间。
如果添加了一个Activity,需要在此文件中添加<activity / >节点,指定activity的name和label
5. android实质是一个框架,提供了很多组件,需要根据规范继承或实现这些类或接口,做一个屏幕类,需要继承Activity,服务类需要继承Service,广播接收器需要继承Broadcast Receiver,内容提供者需要继承Content Provider。
Intent实现了组件间的调用,组件就是Activity、Service等。
activity是一个单独的屏幕;
service无界面,只提供服务,后台运行,运行在应用程序进程的主线程中,不会阻塞其他组件或界面,不能自己启动,必须通过Context对象,如一个activity调startService或bindService启动,两个方法调用的服务的生命周期不同。
Content Provider可以将应用程序的数据提供给另一个应用程序,数据可以存在文件、sqlite中,共享时,需要继承ContentProvider
Broadcast Receiver无界面,但它可以收到广播后,启动Activity作为响应,或者通过notificationmanager提醒用户,或调Service处理长时间事务。
Intent在不同组件间传递消息,可以实现组件间调用,还可以通过它在组件间传递数据
6. 可以基于例子,在eclipse中创建android项目;可以使用DDMS,window-》open perspective-》DDMS;可以模拟GPS,给模拟器打电话等,可以查看日志,在代码中通Log.d(),Log.i(),Log.w(),Log.e(),Log.v()输出日志,还可以自定义标签输出,相当于为指定的组件输出日志。
可通过File Explorer导入、导出文件
chat4:
1. UI 元素包括Activity、View、ViewGroup、布局。
Activity包含View,View相当于控件,是基础控件、ViewGroup(布局、高级框架)的基类。
ViewGroup是View的子类,是容器或组件。
可以用DroidDraw来设计UI,生成xml文件。
2. 事件
可以通过接口实现、内部类、匿名类3种方式处理,原理都一致。
如button的Click事件,都需要implements OnClickListener接口,并为事件源设置事件(button.setOnClickListener(this或内部类、匿名类))和事件处理者。
一般多用匿名类实现,加载快。
事件源可以是view,也可以是Activity。
触摸事件如果事件源是Activity,要重写onTouchEvent方法,通过getAction获取触摸事件信息,如按下、抬起、移动、触摸点屏幕坐标(像素点坐标)。
键盘事件,onKeyDown.
菜单:通常隐藏,按菜单键时才显示。先创建和初始化菜单,然后进行菜单项事件处理。菜单有文本、图片以及混搭风格。
先为菜单项定义ID,public static final int G_MENU_ID=Menu.FIRST; ...=Menu.FIRST +1; ... = ... +2;
菜单初始化通过重写onCreateOptionsMenu(添加菜单项)和onOptionsItemSelected(实现菜单选择处理方法)实现。
图片菜单,只需要添加菜单项时setIcon即可。