基础&杂
杂
<--! 注释 -->
点击左上角的DDMS进入调试界面
资源
语言
(IE-Internet选项-语言)
- res/values-zh 中文包 res/values-zh-rCN
* res/values-en 英文包
资源目录下的String.xml
res/values/strings.xml
例:
<string name="omg">欧迈嘎</string>
<string-array name="tag">
<item >ABC</item>
<item >DEF</item>
<item >GRE</item>
<item >JKL</item>
</string-array>
调用
String[] TagStrings = getResources().getStringArray(R.array.tag); // 获取Tag数组
styles 主题样式
res/values/styles.xml
例:
<style name="my_style">
<item name="android:textColor">#00ff00</item>
<item name="android:textSize">59dp</item>
</style>
调用:
* 控件属性+:style="@style/my_style"
* AndroidManifest.xml/application+:android:theme="@style/my_style"
系统有自带样式,详情百度
一些函数
关闭当前界面 finish();
知识
缩写
- ANR (Application NotResponding):无响应 - 在5秒内没有响应输入的事件 或 BroadcastReceiver在10秒内没有执行完毕。
* OOM (Out of Memory):内存不足 - 多用缓存,注意图片
sdk的目录结构
- add-one 额外功能附属文件(google地图等…)
- docs 开发文档
- extras usb的驱动、摄像头驱动等等
- platforms Android系统的版本
- platform-tools 平台工具(adb)
- samples 范例代码(一些案例)
- sources 源码
- system-images 系统镜像
* tools 开发用到的工具(模拟器)
常见分辨率
- VGA : 480 * 640
- HVGA : 480 * 320
- QVGA : 240 * 320
- WVGA : 480 * 800
- FWVGA : 480 * 854
提示
//TODO 标记名 标记
Log信息
Log.i("标签名","输出信息");
Log.d(TAG, "Error setting camera preview: " + e.getMessage());
// Log. v/i/e/d/w 都可以 级别/颜色不一样
函数注释
/**
* 获得我自定义的样式属性?
*
* @param context
* @param attrs
* @param defStyle
*
* @return
*
* @author ly
*/
测试
- monkey 2000 //狂点手机2000次 用于压力测试 有其它参数
写一个类继承AndroidTestCase里面写测试
断言:assertEquals(期望值,实际值); //对比
配置函数库:
清单文件+<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="包名" />
// application + <uses-library android:name="android.test.runner" />
运行Android JUnit Test
环境&软件
环境的搭建
环境变量: | 值/例 |
---|---|
ANDROID_SDK_HOME | D:\Software\Android\SDK (SDK路径) |
JAVA_HOME | C:\Program Files\Java\jdk1.7.0_79 (安装的JDK包路径) |
CLASSPATH | .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; |
Path | %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%ANDROID_SDK_HOME%\tools;%ANDROID_SDK_HOME%\platform-tools; |
配置完成后,运行->cmd,输入java或者javac测试命令看成功与否.
adb命令
导入 导出文件
- adb push 把电脑的文件发送到手机
adb push filename.txt /sdcard/filename.txt
- adb pull 把手机的文件发送到电脑
adb pull /sdcard/filename.txt filename.txt
安装命令
- adb install xx.apk 安装应用
- adb uninstall 包名 卸载应用
adb uninstall com.example.testnew
adb shell 进入终端
shell 退出终端
adb kill -server // 杀死adb的服务(当安装卡住时,,,等等)
adb start-server //启动 (杀死再重启服务)
adb 占用 5037端口 (在cmd中输入netstat -ano // 查询占用端口)
monkey 2000 //狂点手机2000次 用于压力测试 有其它参数
就是 Linux 命令
- ls :: 列出当前目录文件
- cd 目录名 :: 打开目录
cd sdcard
rm -r filename 删除文件
rm -r abc.txt
chmod 777 文件名 //修改文件权限 7读写执行 111 二进制 读4 写2 执行1
数据库
1 adb shell
2 cd data
3 cd data
4 cd com.android.providers.contacts
5 cd databases
6 sqlite3 contacts2.db
7 .tables
8 select * from contact;
Eclipse
Eclipse快捷键
- Alt+/ – 列出值列表
- Ctrl+Shift+F – 格式化文件(排列好)
- F3 – 跳到声明或定义的地方
- Alt + 左键 (<-) – 后退光标位置(不会还原修改,可以打开之前关闭的文件)
- Ctrl + Q – 跳到最后一次的编辑处
- Ctrl + / – 注释 //
调试快捷键
- F5 单步执行程序,遇到方法时进入;
- F6 单步执行程序,遇到方法时跳过;
- F7 单步执行程序,从当前方法跳出;
- F8 直接执行程序。遇到断点时暂停;
项目文件目录
- src – 界面原代码
- gen – 自动生成的代码文件 & 控件资源的 ID
- Android 版本号 – 开发依赖SDK的jar包
- assets – 打包的一些资源(直接保存进apk里,直接调用,,比如一些MP3…)
- bin – 自动生成的编译临时文件(编译后的文件 - .class -> .dex -> .apk)
- libs – 向下支持的jar包(安卓各版本支持的jar包)
- res – 项目资源文件
- drawable – 应用程序的图片
- layout – 应用程序的布局
- menu – 应用程序的菜单
- values – 应用程序的字符串
- AndroidManifest.xml – 非常重要的配置文件,用于指定应用程序的包名、图标、名称、权限等…
- project.properties – 应用程序编译的版本
更新SDK
Android SDK Manager -> Tools -> Options…
* HTTP Proxy Server :: mirrors.neusoft.edu.cn
* HTTP Proxy Port :: 80
* Force http://… :: 选中
按钮事件监听器的四种方法
1. 在界面中按钮控件属性加:
android:onClick = "Ckcck"
public void Ckcck(View v) {
if (v.getId() == R.id.btn1 ) Toast.makeText(this,"单击按钮1", Toast.LENGTH_LONG).show();
else if (v.getId() == R.id.btn2) Toast.makeText(this,"单击按钮2",Toast.LENGTH_LONG).show();
else Toast.makeText(this,"未定义",Toast.LENGTH_LONG).show();
}
2. 内部类
Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "MainActivity.btnMsg click", Toast.LENGTH_LONG).show();
}
});
3. 重写类 (重写按钮事件监听器类)
Button btn1 = (Button) findViewById(R.id.btn1);
MyOnClickListener myOnClickListener = new MyOnClickListener();
btn1.setOnClickListener(myOnClickListener);
class MyOnClickListener implements OnClickListener {
public void onClick(View v) {
Toast.makeText(MainActivity.this, "click", Toast.LENGTH_LONG).show();
}
}
4. 继承类
修改Activity:public class MainActivity extends Activity implements OnClickListener //接口
Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(this);
@Override
public void onClick(View v) {
if (v.getId() == R.id.btn1 ) Toast.makeText(this,"单击按钮1", Toast.LENGTH_LONG).show();
else if (v.getId() == R.id.btn2) Toast.makeText(this,"单击按钮2",Toast.LENGTH_LONG).show();
}