Android开发一些事项及Eclipse使用

 
安装JDK(bin文件):
1、将安装文件拷贝到要安装到的目录。
2、更改文件权限:
$sudo chomod u+x <bin file name>
3、安装:
$sudo -s <file name>.bin
一路回车,直到询问 yes or no 时,输入 y,回车。
4、会在目录下生成一个安装后的文件夹。
修改整个文件夹的权限:
$sudo chmod -R 777 <bin file name>
5、配置path:
修改 /etc/environment 文件的 PATH,需要使用系统管理员权限:
$sudo gedit /etc/environment
在前边加入:
<java path>/bin:<java path>/jre/bin:.:

Android的开发环境配置:
1、安装JDK
2、解压缩Eclipse
3、解压缩android的SDK
4、运行Eclipse
5、在Eclipse中通过软件更新方式安装ADT插件。
插件地址:
https://dl-ssl.google.com/android/eclipse/
6、重启Eclipse
7、设置SDK:
Window -> Preferences -> Android -> SDK location:
指向SDK解压缩后得到的目录。
8、AVD设置:
Window -> Android SDK and AVD Manager -> Virtual Devices
-> New :
Name : Android2.1 随便起一个名字
Target: 选择一个Target,在指定SDK时会生成Target列表供这里选择
Size: 128 (MiB) 可以设置其它大小
-> Create AVD
9、创建Android工程,运行。

运行时出现以下WARING:
Application does not specify an API level requirement!
Device API version is ...
主要是在创建工程时没有指定最小SDK版本:
A、在创建工程时指定,比如1.6为4,2.1为7。
B、修改AndroidManifest.xml文件,该文件位于工程根目录下:
将 Uses Sdk 的 Min SDK version 指定一个值。
或者在 </mainfest> 前添加如下语句
<uses-sdk android:minSdkVersion="7"></uses-sdk>

修改Eclipse编译时使用的JDK版本:
Window -> Preferences -> Java -> Compiler -> JDK compliance
-> Compiler compliance level :
选择一个合适的版本即可。

修改Eclipse使用的JRE:
Window -> Preferences -> Java -> Installed JREs -> Add -> Standard VM :
JRE home: 选择JDK安装目录
JRE name: 起个名字
-> Finish -> <select created JRE> -> OK

Java相关:
Context是Activity的基类,在一些需要传递Context参数的地方,可以写Activity的实例对象。
可以在一个类中用 <该类类名>.this 表示该类的对象。在有嵌套类时尤其有用。

Eclipse的log路径:
<workspace>/.metadata/.log

Eclipse3.4在Ubuntu下启动失败:
log:Widget disposed too early!
原因:可能是某些程序,例如firefox,修改了配置。
解决:
1、确认 /usr/lib/xulrunner 下存在文件
2、在Eclipse安装目录下的eclipse.ini文件后加上:
-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner

Android创建SD卡镜像文件:
进入SDK安装目录的tools目录下,执行以下命令:
$./mksdcard -l sdcard <size>M <path>/<file name>.img

以带SD卡的方式启动Android模拟器:
进入SDK安装目录的tools目录下,执行以下命令:
$./emulator -sdcard <sd image file name> -avd <avd name>

Android的adb工具的使用:
该工具主要用于与模拟器或真机交互。
位置:<android sdk path>/tools/adb
常用命令:
1、安装adk程序:
$./adb install <apk file name>
2、进入shell
$./adb shell
3、执行一条shell命令:
$./adb shell <command>
4、删除:
首先进入shell:
$./adb shell
再执行删除操作:
#rm [-r] <file name>
-r参数:用于删除文件夹。
5、拷贝文件
$./adb push <local file name> <target path>
$./adb pull <target file name> <local path>
6、取得ID及序列号:
$./adb get-product
$./adb get-serialno
7、提高执行权限:
$./adb remount

设定Activity启动时的横竖屏且不改变:
在AndroidManifest.XML文件中的Activity配置属性中,加入以下属性:
<activity ...
android:screenOrientation="<value>"
android:configChanges="keyboardHidden"
... > ... </activity>
value=landscape: 横向
value=portrait: 竖向

Android应用程序中读写配置文件:
1、获取文件对象,该对象如果不存在会自动创建:
SharedPreferences settings = getSharedPreferences("<file name>", 0);
2、读取配置项的内容:
String var = settings.getString("<item name>", "<default value>");
3、保存配置项:
settings.edit().putString("<item name>", "<value>").commit();
4、其它类型可以用相应的 get 和 put 方法。
5、配置文件会被保存到以下目录:
/data/data/<app package name>/shared_prefs/

Android多语言支持:
主要是创建一个 values-zh-rCN 的文件夹来对应中文,其它语言类似。
当某特定语言环境下某值不存在时,会使用默认的值,也就是 values 中保存的值。
A、在原来存在values文件夹的基础上,同层添加名为 values-zh-rCN 的文件夹:
项目名称与 values 中相同,但值为中文。
这样,当系统语言更改为中文后,程序会自动改为 values-zh-rCN 中的内容,也就是中文。
B、在使用向导创建xml文件时,语言填写 zh ,region 填写 cn 。
程序会自动创建 values-zh-rCN 文件夹并把xml文件生成到该文件夹下。

动态设置EditText允许的输入类型及输入提示:
EditText edit = ... ;
edit.setInputType(InputType.<type const>);
edit.setHint("<hint string>");
例如 TYPE_CLASS_NUMBER 常量为数值。

电话号码验证:
PhoneNumberUtils.isGlobalPhoneNumber(<phone number>);

Java相关:
如果内部类要引用外部类的变量,则该变量必须为 final 。

让自己的资源不被系统扫描:
在资源目录下,如果存在 <anything>.nomedia 文件,则该目录下的资源不会被系统扫描。

调整模拟器的显示方向:
Ctrl+F12 或者 Ctrl+F11 或者小键盘未锁定数字时的 7 。

开启模拟器的轨迹球模式:
按 F6 可以开启和关闭模拟器的轨迹球模式。
开启后,在模拟器的左上角会显示一个轨迹球,移动鼠标模拟轨迹球转动。

LinearLayout的方向:
orientation=vertical: 竖屏
orientation=horizontal: 横屏

将raw文件夹下的资源转换成流:
InputStream is = getResources().openRawResource(R.raw.<file name>);

读取properties文件:
Properties p = ... ;
p.load(<input stream>);

Android的两个工具:
dx: class文件整合为 dex 的工具。
aapt: 打包为 apk 或其它包的工具。

关于onKeyDown事件:
返回值为 true 表示该事件已被处理,系统不再继续处理。
HOME,ENDCALL,POWER按键不会传递到应用层的该事件,所以捕获不到。
返回按钮按下面的方式判断:
if (keyCode == KeyCode.KEYCODE_BACK) ...
其它按钮类似。
判断是不是长按用如下方式:
if (event.getRepeatCount() != 0) ...
当等于0时,说明是第一次按下时触发的该事件,
当大于0时,表示长按时触发的该事件,具体数值表示长按时触发该事件的计数。

更改屏幕亮度:
WindowManager.layoutParams lp = getWindow().getAttributes();
lp.screenBrightness = <float number>;
getWindow().setAttributes(lp);
具体数值介于 0.0f 和 1.0f 之间,1.0f时最亮。
不能设置为 0.0f,必须是一个大于0的float类型的值。

Eclipse的SVN报错:
Unbale to load default SVN client
可能是本地的javaHL有问题,可修改SVN接口:
Preferences -> Team -> SVN -> SVN接口 :
将默认的 JavaHL 修改为 SVNKit 即可。

Eclipse添加checkstyle插件:
使用以下URL:
http://eclipse-cs.sf.net/update/

Eclipse用工作集管理项目:
在Package Explorer中,点击向下的三角,
选择Top Level Elements,然后选中Working Sets。
在Package Explorer中的空白处点击右键,
New -> Java Working Set,建立工作集。

Android取得版本号:
os版本号为以下常量:
android.os.Build.VERSION.RELEASE;
sdk版本号为以下常量:
android.os.Build.VERSION.SDK;
build号为以下常量:
android.os.Build.DISPLAY;
jvm版本号为以下属性:
System.getProperty("java.vm.version");
linux内核版本用以下命令:
Runtime.getRuntime().exec("cat /proc/version");

取得手机串号和IMEI:
TelephonyManager tm;
tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
tm.getSimSerialNumber();
tm.getDeviceId();
需要以下权限:
android.permission.READ_PHONE_STATE

使用命令模拟发送短信和打电话:
1、启动模拟器,并通过标题栏找到其端口,如5554。
2、通过以下命令行,进入模拟器控制台:
$telnet localhost 5554
3、发送短信:
$sms send <sender phone number> <msg>
例如:sms send 1234 This is a test msg.
4、打电话:
$gsm <call|accept|busy|cancel|data|hold|list|voice|status>
一般用以下命令打电话:
$gsm call <caller phone number>
例如:gsm call 1234

使用命令模拟更改gps位置:
1、启动模拟器,并通过标题栏找到其端口,如5554。
2、通过以下命令行,进入模拟器控制台:
$telnet localhost 5554
3、使用命令更改模拟gps位置:
$geo fix <longitude> <latitude>
longitude: 经度值。如12.1231231
latitude: 纬度值。如-12.1231232

Android添加source到Eclipse:
1、将sdk源代码目录文件夹 sources 拷贝到sdk的以下目录:
platforms/<sdk version name>/
2、在eclipse中添加一个用户库,并将android.jar加入到该库中。
3、将该自定义库的 source 指定到 sources 文件夹。
4、移除工程自带的Android库,加入自定义库。
5、刷新工程,这时可以查看skd的source了。
6、将引用的自定义库删除。
7、在项目属性的Android项中重新选择对应的 Target。
8、项目右键 -> Android Tools -> Fix Project Properties。

调用系统自带的程序:
1、取得程序的包名及类名:
在 logcat 下,启动 Activity 后,会打印 I 类型log.
Tag 为 ActivityManager 。
Message 为 Displayed activity <package name>/.<class name>:<time>ms 。
利用该信息即可。
2、启动该Activity:
Intent intent = new Intent();
intent.setClassName("<package name>", "<package name>.<class name>");
startActivity(intent);

使用sdk中部分无法导入的类:
有些类虽然存在,但在android.jar中是隐藏的,我们无法导入。
例如:anddroid.os.SystemProperties 。
部分包可用如下方式解决:
在以下目录找到 layoutlib.jar 包,导入工程即可:
platforms/<sdk version name>/data/

在Android源代码下编译自己的工程:
1、将自己的源代码拷贝到以下目录:
<android source>/packages/apps/
2、在自己源代码的根目录创建文件 Android.mk ,主要写入以下内容:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := <project name>
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
其中 project name 为你的工程名称,比如 MyTestProject 。
3、进入命令行,进入到sdk 源代码的以下目录
$cd <android source>/build/
执行以下命令:
$. ./envsetup.sh [;tapas]
该命令执行后即可使用 m , mm , mmm 命令。
可选项 分号+tapas 的话,会有选项供选择。
4、进入自己的源代码目录,执行 mm 命令。
或者进入android源代码的根目录执行以下命令
$make <project name>

Android的xml文件中的特殊字符:
一些特殊字符不能直接作为值使用,比如单引号,at符号等。
可以使用有划线进行转义,这样就可以使用了。
两端如果有空格,可以给字符串加双引号,双引号之间的内容为实际的资源内容。

Java相关:
在java中启动其他应用程序:
A、使用Runtime:
cmd = "<command or file>";
Process process = Runtime.getRuntime().exec(cmd);
B、使用ProcessBuilder:
cmd = "<command or file>";
arg = "<arg>";
...
Process process = new ProcessBuilder(cmd[, arg ... ]).start();
C、如果要等待应用进程执行完,执行以下语句,有些应用会不起作用:
process.waitFor();

关于广播接收的注意事项:
有些广播的接收只能在代码中用Context.registerReceiver()注册的Receiver才有效,
而在AndroidManifest.xml中注册的Receiver则不行。

关于Activity的生命周期:
不要忘记,在onResume和onPause之间,还有以下函数:
onWindowFocusChanged(boolean hasFocus)
长按Home键弹出窗口时,会触发该事件,而不会触发onPause事件。

Android真机调试时用到的命令:
首先进入adb命令所在的目录。
1、杀掉server,当连接不上时使用:
$sudo ./adb kill-server
2、连接设备:
$sudo ./adb devices
3、查看log:
$sudo ./adb logcat
4、重启设备:
$sudo ./adb reboot

Android烧image到机器的命令:
在adb命令所在的目录执行:
$sudo ./adb reboot bootloader
在fastboot命令所在的目录执行:
$sudo ./fastboot devices
$sudo ./fastboot flash boot <boot image file name>
$sudo ./fastboot flash system <system image file name>
$sudo ./fastboot reboot
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值