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

四、             Android项目工程说明

src:        存放java源代码。

gen:       存放编译器自动生成的java代码,这个目录下的文件是系统自动维护的。

assets: 存放在这个目录下的文件,无论是mp3还是图片,都会被打包到发布包中。

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

AutoCompleteTextView :

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)

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

Button:

ImageButton:

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

ImageView

Gallery

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

5.9     日期和时间(DatePicker、TimePicker)

AnalogClock

DigitalClock

Chronometer(计时器)

DatePicker

DatePickerDialog

TimePicker

TimePickerDialog

5.10 单项选择(RadioGroup、RadioButton)、多项选择(CheckBox)

CheckBox

RadioButton

ToggleButton

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

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

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();

5.15 GestureOverLayView

文章1、文章2

5.16 HorizontalScrollView

5.17 MapView

5.18 VideoView

5.19 WebView

5.20 ZoomControls

六、             布局和容器

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

七、             常用代码

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

删除文件: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 voidmethodName(View view){} (适应1.6以上版本)

10.4          用PC键盘控制模拟器

PC键盘

模拟器按键

说明

Home

Home

主页

F2

Menu

菜单

Esc

Back

后退

F3

Call

打电话

F4

Hangup

挂断

F5

Search

搜索

Ctrl+F12

横竖屏切换

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左下角 ,点开后在其他里面找到Android目录下的LogCat拖拽出来即可。

Androi开发基础相关推荐

  1. 虚幻引擎虚拟现实开发基础学习教程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:3.93 GB |时长:5h 15m 了 ...

  2. 虚幻引擎C++编程游戏开发基础

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:23.8 GB |时长:44h 59m ...

  3. 2017-2018-2 20165236 实验四《Android开发基础》实验报告

    2017-2018-2 20165236 实验四<Android开发基础>实验报告 一.实验报告封面 课程:Java程序设计       班级:1652班       姓名:郭金涛     ...

  4. Android游戏开发基础part2--Canvas画布

    游戏开发基础part2--Canvas画布 又过了一周才继续做总结,四级结束了,应该可以多点时间学习游戏编程了. Canvas画布类是一个在游戏当中担当非常重要的角色,它可以绘制出不同的图形和图片,可 ...

  5. 一起谈.NET技术,asp.net控件开发基础(18)

    本篇继续上篇的讨论,可能大家已经在使用asp.net2.0了,DataSource属性不再使用,而是跟数据源控件搭配使用.现在讨论的绑定技术都是基于1.1版本,先熟悉一下,本质上是一样的,这样一步步的 ...

  6. android界面数据存储,Android应用开发基础之数据存储和界面展现(二)

    Android应用开发基础之数据存储和界面展现(二) 常见布局 相对布局 RelativeLayout 组件默认左对齐.顶部对齐 设置组件在指定组件的右边 android:layout_toRight ...

  7. SP 短信开发-基础知识篇

    SP 短信开发-基础知识篇 很土的话题,但是最近帮朋友做这个东西,所以写点东西出来给初学者参考. 一.准备资料 SP开发资料网站上有很多,但是主要是以下几个文档: 1.MISC1.6 SP订购通知接口 ...

  8. 【读书笔记《Android游戏编程之从零开始》】16.游戏开发基础(动画)

    1. Animation动画 在Android 中,系统提供了动画类 Animation ,其中又分为四种动画效果: ● AlphaAnimation:透明度渐变动画 ● ScaleAnimation ...

  9. os-cocos2d游戏开发基础-进度条-开发笔记

     os-cocos2d游戏开发基础-进度条-开发笔记(十)   ios-cocos2d游戏开发基础-游戏音效-开发笔记(九)       ios-cocos2d游戏开发基础-CCLayer和Touch ...

最新文章

  1. Linux更新pip国内源
  2. 第二周数据采样过程及结果
  3. 如何快速提高网站流量
  4. InvalidClassException异常_原理和解决方案
  5. android异步更新UI
  6. 如何计算出int的数据范围
  7. sublime c 语言 编译,默认情况下,将程序编译为Sublime Text 3中的c 14
  8. linux samba 多个目录,linux7 Samba服务配置,多个部门相应管理自己的项目目录,其他有访问权限...
  9. CC攻击及其解决方法
  10. Python 精要参考(第二版) 第八章 模块和包
  11. 这个时代,开发简单多了
  12. 计算机常用算法对照表整理
  13. table 超级详细的 商品订单列表
  14. 大厂对学历的要求是什么?如果学历不够,有这些补救的办法!
  15. 房产管理系统系统与数据中心对接要遵循的标准和规范
  16. 台式计算机联网,台式电脑怎么联网宽带
  17. 浅谈子网、子网掩码、保留地址
  18. Java搭建实战springboot基于若依项目工时统计成本核算管理源码
  19. 金堂县五月花计算机学院,成都五月花高级技工学校计算机专业引领未来
  20. 终年32岁的传奇数学家,生前寂寂无闻,一个世纪后却让硅谷领袖们集体落泪致敬

热门文章

  1. 一键复制吱口令,支付宝红包js代码
  2. Samara SAU ACM ICPC Quarterfinal Qualification Contest 2012
  3. Python美股量化交易填坑记录——13c.Vegas隧道交易机器人(实盘记录)
  4. 计算机论文致谢词范文500字,2021年论文致谢词范文500字(通用5篇)
  5. python怎么读汉字翻译拼音_Python 返回汉字的汉语拼音
  6. 在VS中怎么用vb画矩形_怎样画颜色绚丽的插画?
  7. 微信小程序 post请求发送x-www-form-urlencoded类型数据
  8. An error occurred at line: [14] in the generated java file:
  9. 海外SDK之----------苹果支付
  10. (译)三维空间中的几种坐标系