Android之自学笔记(一)
来源:互联网 发布:c语言getchar()用法 编辑:程序博客网 时间:2024/05/18 07:03
准备开发环境
安装ADT插件
下载用于在Eclipse中开发android应用的ADT(Android Development Tools)插件。
Help → Install Software → Add → Achieve →选择ADT的zip文件,输入Name,确定,勾选安装项(如果安装不上, 就把该zip文件丢到eclipse/dropins下)。为了防止安装时自动更新,所以勾掉Contact all update sites during install tofind required software。→ 重启Eclipse。
安装完之后在工具栏就会出现Android机器人的图标。在Preference也会有对应的项。
安装Android SDK
AndroidSDK包含了开发Android应用所依赖的jar文件,运行环境及相关工具。有点类似于JDK。
从官方网站下载的SDK不带有各种版本的android平台(platforms文件夹是空的),可以通过SDK Manage.exe来下载android的版本。
完成之后再platforms中有对应的android文件。
为ADT插件指定使用的SDK环境:
Window → Preference → Android → 选择SDK Location →选择解压的SDK文件 → Apply,就会出现Android版本的列表 → OK
创建android手机模拟器
选择屏幕分辨率:
HVGA:320*480
QVGA:240*320
WQVGA400:240*400
WQVAG432:240*432
WVGA800: 480*800(default)
WVGA854: 480*854
几个常用eclipse视图窗口
视图File Explorer。
该视图有3个文件:
data: 存放原件产生的数据
mnt: 存放外部的数据
asec
sdcard: 外部设备
system: 存放android系统文件
视图Emulator Control 模拟器控制器
模拟电话呼出
打开手机模拟器之后,输入Telephony Actions : 5554 点击Call就能模拟呼叫手机模拟器了。
第一个Android应用
新建项目
File → new → Project →Android → Android Project →
输入Project name: HelloWord
选择对应android平台
输入Application name(应用名称): 第一个应用
输入Package name(Android中使用 Package name作为应用的唯一标识。):com.gshen.android.app
创建Create Activity(Activity代表窗口,该窗口可以接受用户的输入事件):Main
选择Minimum SDK版本,表示该应用程序可以在选择版本以上的版本运行
项目安装部署到模拟器上
第一种:项目右键→ Run As → Android Application(推荐, 内部也是通过adb.exe实现)
第二种:编译之后,会在根目录/bin下生成一个HelloWorld.apk 的文件,然后通过android-sdk-windows\tools下的adb.exe来完成项目部署
cd E:/android-sdk-windows/tools
adbinstallE:/workspace/Android_HelloWrod/bin/HelloWord.apk
卸载程序
第一种:setting → 管理应用程序 → 就可以操作
第二种:通过adb指令来完成
adbuninstall <应用的包名> eg. adbuninstall com.gshen.android.app
项目的目录结构
src/ 存放源文件
gen/ 存放由开发工具自动生成的文件(由开发工具维护),有一个R.java:作用是登记各种资源的id,资源id是由编译器在放入res(资源)时生成的
publicfinal class R {
publicstatic finalclass attr {
}
/*这个类专门登记图形资源,可以通过这个ic_launcher资源id找到对应图片*/
publicstatic finalclass drawable {
publicstatic finalint ic_launcher=0x7f020000;
}
publicstatic finalclass layout {
publicstatic finalint main=0x7f030000;
}
publicstatic finalclass string {
publicstatic finalint app_name=0x7f040001;
publicstatic finalint hello=0x7f040000;
}
}
使用静态内部类实现 [gshen1]
res/ 存放资源文件:比如图片,文字,布局等等
drawable-*/ 为了适应不同分辨率的屏幕,图片文件提供了drawable-hdpi(高), drawable-mdpi(中), drawable-ldpi(低)三个文件夹 ,开发时我们可以为同一张图片设置不同的分辨率,分别放在这三个文件夹下。
layout/ 存放界面布局和的文件
values/ 存放应用中用到的数据,也用于实现国际化,减少相同文字内存空间的使用比如在string.xml中添加:
<stringname="hello_world">你好,世界</string>
在R.java文件的string内部类下就会生成对应的资源id:
publicstatic finalclass string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
publicstatic finalint hello_world=0x7f040002;
}
这样在项目中就可以通过hello_world找到对应的字符串了。
amin/ 存放定义动画的XML文件
xml/ 存放应用中配置的数据, 在Activity中使用getResources().getXML()读取该目录下XML资源文件。
raw/ 该目录用于存放应用使用到的原始文件,如音效文件等。编译软件时,这些数据不会被编译,他们被直接加入到程序安装包中,为了在程序中使用这些资源,可以通过调用getResources().openRawResources(ID),参数ID形式:R.raw.i_definition
assets/ 存放资源文件,这个文件夹下的资源文件不会在R.java生成资源id,如果要访问这个路径下的资源文件,通过:file:///android_asset/icon.jgp
AndroidMainifest.xml 项目清单文件(imp)
这个文件列出了应用程序所提供的功能,以后开发好的各种组件(Activity、ContentProvider、BroadcastReceiver、Service)需要在该文件中配置,如果应用使用到了系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等),还需要在该文件中生命使用权限。
<activityandroid:label="@string/app_name"
android:name=".Android_HelloWorldActivity">
<intent-filter >
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
这个activity是应用程序的入口,指定应用程序的图标出现在启动列表中。
清单文件是在应用程序安装的时候读取,注册。
default.properties 项目环境信息,不需要操作
应用程序安装过程
.java → .class →通过dx工具再转成一个.dex → 将.dex文件和资源文件打包一个压缩文件,这也是一个签名过程,使用一个证书秘钥(证书位置:Android→Build→Default debug keystore目录下)对文件打包签名,完成之后就是一个.apk文件。
(如果我们是调用Run As Android Application,则会默认调用adb指令安装到模拟器)
应用程序启动过程
用户点击图标之后,创建一个进程 → 创建主线程 → 在主线程中实例化Activity →操作系统把应用有关的信息(Context)存放进Activity中,然后调用onCreate()方法,再调用main.xml布局方式。
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
布局及单位
布局方式(容器,用于摆放控件)有几种:
1、 LineLayout(线性布局)
2、 RelativeLayout(相对布局)
3、 TableLayout(表格布局)
4、 FrameLayout(帧布局)
Android中显示的单位
1、 px(pixels)像素
一般HVGA代表320*480像素,则个用的比较多
2、 dip或dp(device independent pixels)设备独立像素
这个和设备的硬件有关,一般为了支持WVGA、HVGA、QVGA推荐使用这个,不依赖像素
3、 sp(scaled pixels – best for text size)比例像素
主要处理字体的大小,可以根据系统的字体自适应
除了上面三个显示单位,还有几个不太常用的:
in(inches)英寸
mm(millimeters)毫米
pt(points)点,1/72英寸
为了适应不同分辨率,不同的像素密度,推荐使用dip,文字使用sp。
[gshen1]为什么这么实现?
- Android之自学笔记(一)
- android自学笔记(一)
- Android自学笔记(一)
- IOS自学笔记之Foundation(一)
- Android之自学笔记(二)
- 随记录 之 Spring 自学笔记(一) -- IOC(一)
- Android自学笔记(一)Android系统架构
- Android自学笔记之SharedPreference
- 自学android笔记之SwipeRefreshLayout
- TC二次开发之ITK开发自学笔记(一)
- Extjs6自学笔记之Sencha Cmd(一)
- Android studio 自学笔记(一) 自定义 Dialog
- ajax自学笔记(一)
- java自学笔记(一)
- TUXEDO自学笔记(一)
- TUXEDO自学笔记(一)
- python自学笔记(一)
- QuickServer自学笔记(一)
- 回合制战斗设计
- IOS自动化测试之UIAutomation学习
- C++ Singleton (单例) 模式最优实现
- 了解 Boost Filesystem Library
- 输入一个整数,把该整数分别按照八进制、十进制、十六进制形式输出
- Android之自学笔记(一)
- 使用do while循环,计算2+4+6+...+100
- eclipse中配置github
- Hadoop集群配置
- 慢慢聊fcntl
- 2013年度Q4季度及全年热门Android机型排行榜
- USB协通讯议--深入理解
- 工作小记
- JBOSS EAP 6 系列四 EJB客户端--让人又爱又恨的JNDI