[转]Android2.2快捷入门

正文转自:http://kb.cnblogs.com/page/75866/  

一、 环境布置和装置(Android2.2)

  1.1     JDK

  1.2     SDK

  下载地址:http://dl.google.com/android/android-sdk\_r06-windows.zip

  1.3     Eclipse 3.5 (Galileo)

  下载地址:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/R/eclipse-java-galileo-win32.zip

  1.4     ADT 0.9.7

  下载地址:http://dl.google.com/android/ADT-0.9.7.zip

  1.5     安装

  依次下载,遵照著作步骤安装即可,注意安装SDK时,需要如下设置下:

sqlite 1

  不然更新不下来,这个链接地址被墙了。

  二、Android系统架构

sqlite 2

  2.1   Linux内核(Linux Kernel)

  * Android运行在linux kernel
2.6上述,然则把linux内受GNU协议约束的一对做了代表,这样在Android的顺序可以用来商业目的。

  * Linux 内核是硬件和软件层之间的抽象层。  

  2.2中间件

  * 中间件包括两片段:主题库和运转时(libraries & Android runtime)

  * 主旨库包括,SurfaceManager
呈现系统管理库,负责把2D或3D内容突显到屏幕;Media Framework
媒体库,负责扶助图像,协助多种录像和拍子的录制和重放;SQlite
数据库,一个功用强大的轻量级嵌入式关系数据库;Web基特(Kit) 浏览器引擎等。

  * Dalvik虚拟机:区别于Java虚拟机的是,每一个Android
应用程序都在它和谐的进程中运作,都有一个属于自己的Dalvik
虚拟机,这或多或少足以让系统在运行时得以高达优化,程序间的震慑大大降低。Dalvik虚拟机并非运行Java字节码,而是运行自己的字节码。

  2.3   应用程序框架(Application Framework)

  * 丰硕而又可扩张性的视图(Views),可以用来构建应用程序,
它包括列表(lists),网格(grids), 文本框(text boxes),按钮(
buttons), 可放置的web 浏览器。

  * 内容提供者(Content
Providers)使得应用程序可以访问另一个应用程序的数目(如联络人数据库),
或者共享它们自己的数码。

  * 资源管理器(Resource
Manager)提供非代码资源的拜访,如本地字符串,图形,和布局文件(
layoutfiles )。

  * 通知管理器(Notification Manager)
使得应用程序可以在处境栏中彰显自定义的指示信息。

  * 活动管理器( Activity Manager)
用来管理应用程序生命周期并提供常用的导航回退功用。

  2.4   应用程序 (Applications)

  * Android 系统会安放一些应用程序包包括email 客户端,SMS
短音讯程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是行使JAVA
语言编写的。

  三、Android系统包表明

  android.app :提供高层的主次模型、提供基本的运转环境

  android.content :包含各个的对装备上的数据开展走访和发布的类

  android.database :通过情节提供者浏览和操作数据库

  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
元素(大部分是可见的)在应用程序的屏幕中动用:

sqlite 3

  四、Android项目工程表明

  src:存放java源代码。

  gen:存放编译器自动生成的java代码,那么些目录下的文本是系统活动珍惜的。

  assets:存放在那多少个目录下的文本,无论是mp4仍旧图表,都会被打包到宣布包中。

  res:资源文件目录,添加到这么些目录下的文件都会在gen下的R.ava文件中彰显出来;如果res下存放的资源在动用中从不动用到,那么在gen下的R.java的公文中就不会显示,那么打包的时候就不会将这部分资源打包,裁减了拔取的发布文件大小。

  drawable:存放图片文件,注意图片名称必须是[a-z0-9_.]构成;drawable目录下不可能分子级目录,只可以通过命名格局来加以区别。

  layout:存放与UI相关的布局文件,都是xml文件。

  raw:直接复制到设备中的任意文件,不会被编译,可以放数据库文件。

  values:存放字符串,颜色,数组等常量数据。可以随心所欲命名,但是一般命名:color.xml、strings.xml、array.xml、styles.xml、dimens.xml(定义尺寸值:dimension
value)

  xml:任意的XML文件,在运作时可以经过调用Resources.getXML()读取。

  参见:http://www.inandroid.cn/bbs/thread-1401-1-1.html

  五、 基本控件

  5.1     文本框(TextView)、自动完成(AutoCompleteTextView)

  自动完成的效率和代码:http://android.yaohuiji.com/archives/390

  5.2     编辑框(EditText)

  android:hint 内容为空时指示的消息,如“请输入”

  5.3     下拉列表(Spinner)

  android:entries 可以通过在strings.xml中指定string-array来设置选项。

  5.4     进度条(ProgressBar)

  效果和代码:http://www.eoeandroid.com/viewthread.php?tid=1081

  5.5     拖动条(SeekBar)

  5.6     评分条(RatingBar)

sqlite 4

  5.7     按钮(Button)、图片按钮(ImageButton)

  5.8     图片框 (ImageView)、画廊(Gallery)

  画廊效果:http://android.yaohuiji.com/archives/565

  5.9     日期和岁月(DatePicker、提姆ePicker)

  5.10 单项接纳(RadioGroup、RadioButton)、多项选拔(CheckBox)

  5.11 表格 (GridView)、列表(ListView)

  GridView:http://blog.csdn.net/hellogv/archive/2009/09/18/4567095.aspx

  ListView:http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html

  5.12 对话框(AlertDialog)、对话框中的进度条(ProgressDialog)

  AlertDialog:http://android.yaohuiji.com/archives/655

  ProgressDialog:http://aina-hk55hk.javaeye.com/blog/679134

  5.13 菜单(Menu)

  5.14 提示(Toast)

  类似于MessageBox,非形式窗口。如:

  Toast.makeText(this, “信息”, Toast.LENGTH_SHORT).show();

  六、布局和容器

  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)中,注意不会显示边框线也无法跨行合并单元格。

  例子:http://hi.baidu.com/hoyah/blog/item/d9db34275d6f361a8b82a171.html

  6.6   选项卡(TabWidget)         

  例子:http://fatkun.com/2010/06/android-tabwidget.html

sqlite 5

  七、常用代码

  7.1   在现阶段Activity中启动此外一个Activity

  startActivity(new Intent(this,目标Activity.class));

  7.2   从当下ContentView从寻找控件

  (Button)findViewById(R.id.btnAbout)

  R.id.btnAbout指控件id。

  7.3   获取屏幕宽高

  DisplayMetrics dm = new DisplayMetrics();

  //获取窗口属性

  getWindowManager().getDefaultDisplay().getMetrics(dm);

  int screenWidth = dm.widthPixels;//320

  int screenHeight = dm.heightPixels;//480

  7.4   无标题栏、全屏

  //无标题栏

  requestWindowFeature(Window.FEATURE_NO_TITLE);

  //全屏形式

  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
   

  WindowManager.LayoutParams.FLAG_FULLSCREEN);

  注目的在于setContentView()在此之前调用,否则无效。

  7.5   注册activity

  所有应用的Activity都必须在AndroidManifest.xml中登记,否则会报空指针错误。如:<activity
android:name=”com.common.TestView”> ,注意是包名+类名。

  八、 Adb命令行

  8.1   DOS进入android-sdk-windows\tools目录

  8.2   Linux

  登录linux命令:adb shell

  列出当前文件:ls

sqlite,  删除文件:rm 文件名

  8.3   Sqlite

  登录sqlite命令:sqlite3

  8.4   Adb命令

  列出当前有什么活动的模拟器:adb devices

  上传文件:adb push

  安装apk文件:adb install android123.apk

  九、Apk文件破解

  9.1   获取apk的资源图形

  直接用 WinRAR打开,res/drawable直接拖拽出来即可。

  9.2   获取xml文件音信

  即使能用WinRAR看到其中的xml文件,可是xml是经过优化的,不可以间接查看,需要采纳apktool工具,下载地址:https://code.google.com/p/android-apktool/。

  下载apktool-1.3.1.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2解压到同一个目录,然后把待破解的apk文件拷贝到同一目录,DOS进入该目录,输入:aapt
d 91callinfo.apk 91callinfo,这里第三个参数为破解完存放的路线。

  9.3   反编译dex获取Java源代码

  Apktool工具只可以反编译成smali的中间代码文件,这里需要依靠其余一个开源工具:dex2jar,下载地址:http://code.google.com/p/dex2jar/。这个工具不能直接翻译成java文件,但是可以把dex文件转换成jar文件,然后可以通过jad工具把jar文件反编译成Java源文件,如果只是看看源码的话可以用jd-gui,下载地址:

http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip
。dex文件(classes.dex)可以用WinRAR从apk文件中解压出来。

  十、 小技巧

  10.1   使用系统的图标

  例如调用系统打电话的图标:<ImageView
android:src=”@android:drawable/ic_menu_call”

  图标名称和效能(Android1.5和1.6):http://since2006.com/android/1.5-drawables.php
http://since2006.com/android/1.6-drawables.php

  10.2   让控件透明,如ImageButton

  设置android:background=”@null”

  10.3   在layout中一贯指定onclick方法

  不用手动绑定,在layout中装置android:onClick=”methodName”,methodName为对应Activity中的方法,如下格式:public
void methodName(View view){} (适应1.6以上版本)

  10.4   用PC键盘控制模拟器

sqlite 6

  10.5   进入界面就显得/隐藏软键盘

  在AndroidManifest.xml中设置activity的

  android:windowSoftInputMode=”stateHidden”

  10.6   界面可视化布局工具

  系统提供可视化布局并不好用,那里推荐一款,布局完后点生成代码即可:

  DroidDraw:http://www.droiddraw.org/

  10.7   在Eclipse中看Android的源码

  将源代码拷贝至android-sdk-windows\platforms\android-4\sources下即可。注意源码版本对应android-4文件夹,这里指Android1.6的源码。

  十一、Q & A

  11.1   用模拟器调试频繁连不上,或者报emulator-5554
disconnected的不当?

  Window(窗口) -> Show Views(呈现视图) -> device -> view
menu(视图菜单)-> Reset adb

  11.2   匿名类中什么运用this?

  classname(类名).this

  11.3   程序出错后模拟器上仅显示应用程序碰到问题将闭馆咋办?

  可以从LogCat中检查错误,默认LogCat在DDMS视图中,可以经过以下办法调整到Java视图与控制台并列显示:点击Eclipse左下角
sqlite 7,点开后在其它中间找到Android目录下的LogCat拖拽出来即可。

  停止:资料均出自网络,感谢这一个人的享用。

网站地图xml地图