当前位置: 首页 > 科技观察

Android2.2开发新手快速入门Top11秘技

时间:2023-03-12 13:17:17 科技观察

编者按:本文是一位Android一线开发者在学习Android三周后收集整理的Android2.2开发新手入门培训教程。文章深度恰到好处,对于刚刚学习Android开发的朋友来说是一个很好的教程。1.环境配置及安装(Android2.2)参考《在Eclipse下搭建Android开发环境教程》1.1JDK1.2SDK下载地址1.3Eclipse3.5(Galileo)下载地址1.4ADT0.9.7下载地址1.5安装依次下载,按文章步骤进行install,注意安装使用SDK时需要设置如下:否则更新失败,链接地址被屏蔽。2.Android系统架构2.1Linux内核(LinuxKernel)◆Android运行在linuxkernel2.6之上,但是取代了linux中受GNU协议约束的部分,使得Android程序可以用于商业用途。◆Linux内核是介于硬件层和软件层之间的一个抽象层。2.2中间件◆中间件包括核心库和运行时(libraries&Androidruntime)两部分◆核心库包括,SurfaceManager显示系统管理库,负责在屏幕上显示2D或3D内容;MediaFramework媒体库,负责支持图片,支持多种视频和音频的录制和播放;SQlite数据库,一个强大的轻量级嵌入式关系型数据库;WebKit浏览器引擎等◆Dalvik虚拟机:与Java虚拟机不同,每个Android应用运行在自己的进程中,有自己的Dalvik虚拟机,可以让系统在运行时得到优化,对程序的影响的时间大大减少。Dalvik虚拟机不运行Java字节码,而是运行自己的字节码。2.3应用程序框架(ApplicationFramework)丰富且可扩展的视图(Views),可用于构建应用程序,包括列表(lists)、网格(grids)、文本框(textboxes)、按钮(buttons),一个可嵌入的网络浏览器。◆内容提供者(ContentProviders)允许应用程序访问另一个应用程序的数据(如联系人数据库),或共享自己的数据。◆资源管理器(ResourceManager)提供对非代码资源的访问,例如本地字符串、图形和布局文件(layoutfiles)。◆通知管理器(NotificationManager)使应用程序能够在状态栏中显示自定义的提示信息。◆活动管理器(ActivityManager)用于管理应用程序的生命周期,提供通用的导航返回功能。2.4应用程序(Applications)◆Android系统会内置一些应用程序包,包括电子邮件客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有的应用程序都是用JAVA语言编写的。PhoneClub——移动开发线下技术沙龙日期:1月15日主题:Android应用开发高级技术地点:北京市海淀区中关村南大街30号东联艺术工作室讲师:樊怀宇(网易)点击注册#p#3.Android系统包说明◆android.app:提供高级程序模型和基本运行环境◆android.content:包含各种在设备上访问和发布数据的类◆android.database:通过contentprovider浏览和操作数据库◆android.graphics:底层图形库,包括画布、滤色、点、矩形,可以直接绘制到屏幕上。◆android.location:定位及相关服务的类◆android.media:提供一些类来管理各种音视频媒体接口◆android.net:提供帮助网络访问的类,超越通常的Java.net.*接口◆android.os:提供系统服务、消息传输、IPC机制◆android.opengl:提供OpenGL的工具◆android.provider:提供Android内容提供者的类访问◆android.telephony:提供调用相关的API交互◆android.view:提供基本的用户界面界面框架◆android.util:涉及工具方法,如时间和日期的操作◆android.webkit:默认的浏览器操作界面◆android.widget:包含屏幕上使用的各种UI元素(大部分是可见的)4.Android项目工程说明◆src:存放java源代码。◆gen:存放编译器自动生成的java代码,该目录下的文件由系统自动维护。◆assets:存放在该目录下的文件,无论是mp3还是图片,都会被打包到发布包中。◆res:资源文件目录,添加到该目录下的文件会显示在gen下的R.ava文件中;如果res下存放的资源没有在应用中使用,那么gen下的R.java文件就不会在中显示,那么打包的时候就不会打包这部分资源,减少应用的release文件的大小。◆drawable:存放图片文件,注意图片名称必须由[a-z0-9_.]组成;drawable目录不能是分子级目录,只能通过命名方式区分。◆layout:存放UI相关的layout文件,都是xml文件。◆raw:任何直接复制到设备的文件都不会被编译,可以作为数据库文件使用。◆values:存放字符串、颜色、数组等常量数据。可以任意命名,但通常命名为:color.xml、strings.xml、array.xml、styles.xml、dimens.xml(定义尺寸值:dimensionvalue)xml:任意XML文件,可以在运行时通过调用Resources调用.xml。getXML()读取。◆见文献。PhoneClub——移动开发线下技术沙龙日期:1月15日主题:Android应用开发高级技术地点:北京市海淀区中关村南大街30号东联艺术工作室讲师:樊怀宇(网易)点击报名#p#5.基本控件5.1文本框(TextView)、自动完成(AutoCompleteTextView)◆自动完成下拉列表(Spinner)的效果及代码◆android:entries可以通过在strings.xml中指定string-array来设置选项。5.4进度条(ProgressBar)◆效果及代码5.5拖动条(SeekBar)5.6评分条(RatingBar)5.7按钮(Button)、图片按钮(ImageButton)5.8图片框(ImageView)、图库(Gallery)◆图库效果5.9日期和时间(DatePicker、TimePicker)5.10单选(RadioGroup、RadioButton)、多选(CheckBox)5.11窗体(GridView)、列表(ListView)GridViewListView5.12对话框(AlertDialog)、进度条对话框(ProgressDialog)◆AlertDialog◆ProgressDialog5.13菜单(Menu)5.14提示(Toast)类似于MessageBox,非模态窗口。如:Toast.makeText(this,"information",Toast.LENGTH_SHORT).show();6.布局和容器6.1框架布局(FrameLayout)把里面的所有元素都放在左上区域,不能为这些元素指定一个确切的位置。如果有多个子元素,后面的子元素的显示会和前面的元素重叠。6.2线性布局(LinearLayout)常见布局,子元素按行或列排列。◆android:layout_gravity为本元素相对于父元素的重力方向。◆android:gravity是该元素所有子元素的重力方向。6.3绝对布局(AbsoluteLayout)允许子元素指定准确的x/y坐标值,(0,0)为左上角,没有页面边框,允许元素相互重叠。6.4相对布局(RelativeLayout)允许子元素指定自己相对于其他元素或父元素的位置(通过ID指定)6.5表格布局(TableLayout)将子元素的位置赋值给行(TableRow),注意边框线不会显示您也不能跨行合并单元格。实例6.6Tab(TabWidget)实例PhoneClub——移动开发线下技术沙龙活动日期:1月15日发行主题:Android应用开发高级技术地点:北京市海淀区中关村南大街30号东联艺术工作室讲师:范怀玉(网易)点击注册#p#7.常用代码7.1在当前Activity中启动另一个ActivitystartActivity(newIntent(this,targetActivity.class));7.2从当前ContentView查找控件(Button)到findViewById(R.id.btnAbout)R.id.btnAbout指的是事件id。7.3获取屏幕宽高DisplayMetricsdm=newDisplayMetrics();//获取窗口属性getWindowManager().getDefaultDisplay().getMetrics(dm);intscreenWidth=dm.widthPixels;//320intscreenHeight=dm.heightPixels;//4807.4无标题栏,全屏//无标题栏requestWindowFeature(Window.FEATURE_NO_TITLE);//全屏模式注意在setContentView()之前调用,否则无效。7.5注册activity所有使用的activity都必须在AndroidManifest.xml中注册,否则会报空指针错误。如:,注意包名+类名。8.adb命令行8.1DOS进入android-sdk-windows\tools目录8.2Linux登录linux命令:adbshel??l列出当前文件:ls删除文件:rm文件名8.3Sqlite登录sqlite命令:sqlite38.4adb命令列出当前的活动模拟器:adbdevices上传文件:adbpush安装apk文件:adbinstallandroid123.apkPhoneClub—移动开发线下技术沙龙活动日期:1月15日发布主题:Android应用开发高级技术地点:北京市海淀区中关村南大街东联30号讲师美工:范怀玉(网易)点击报名#p#9.apk文件破解9.1获取apk的资源图片直接用WinRAR打开,直接拖拽res/drawable即可。9.2获取xml文件信息虽然可以用WinRAR查看里面的xml文件,但是xml经过优化,不能直接查看,需要使用apktool工具,下载链接。下载apktool-1.3.1.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2解压到同一目录下,然后将要破解的apk文件复制到同一目录下,进入目录DOS,输入:aaptd91callinfo.apk91callinfo,这里第四个参数是破解后的存放路径。9.3反编译dex获取Java源码Apktool工具只能反编译成smali中间代码文件,这里需要用到另外一个开源工具:dex2jar,下载地址。该工具不能直接翻译成Java文件,但是可以将dex文件转成jar文件,然后通过jad工具将jar文件反编译成Java源文件。如果只看源码,可以用jd-gui,下载链接。dex文件(classes.dex)可以用WinRAR从apk文件中提取。10.Tips10.1使用系统图标,比如调用系统的图标:ShowViews(显示视图)->device->viewmenu(视图菜单)->ResetadbQ:11.2匿名类中如何使用这个?A:classname(类名).thisQ:11.3模拟器只显示应用程序遇到问题,程序失败后会关闭怎么办?A:您可以从LogCat中查看错误。默认情况下,LogCat在DDMS视图中。可以通过以下方法调整Java视图与控制台并排显示:点击Eclipse左下角,点击,在Others中找到Android目录下的LogCat,拖出。就是这样。本文作者:农民大叔作者博客:http://www.cnblogs.com/over140/PhoneClub——移动开发线下技术沙龙活动日期:1月15日发布主题:Android应用开发高级地点:北京东联美工海淀区,区中关村南大街30号讲师:范怀玉(网易)点击报名【编辑推荐】Eclipse下搭建Android开发环境教程NetBeans上搭建AndroidSDK环境图文并茂MyEclipse8上搭建Android开发环境.6