首先,我们先来看一下安卓开发环境的搭建,我们可以在android开发者中心下载到开发工具,下载下来的是一个有android开发插件的eclipse,我们可以利用它来开发安卓应用,启动之后是这样子:
安卓的开发环境搭建好之后,就可以进行安卓开发了,其实重要的不是环境的搭建,而是要重视实际的开发过程。
到目前为止我的认知,觉得移动应用开发首先要注意开发语言,然后就是界面标记语言,以及开发相关的一些常识,比如资源文件的创建,在java文件中关联资源文件,以及相关组件的注册,这些都不是智力上的难题,而是熟练程度的多少,最重要的还是实际编程的逻辑,比如在写一个最简单的计算器的安卓应用的时候,我们仅仅把界面构建好之后还远远不够,重要的是Mainactivity.java的编辑,在这里我们就要实现真正的功能,而这些就是逻辑相关的问题,所有功能的实现都要在这里一句一句代码实现。
比如说我们在写计算器的时候,当我们把UI设计好之后重要的就是代码实现功能了,当然,UI设计也是应该有适当方法和技巧的,这个也需要用心设计,当一个项目不仅有一个界面,或者界面之间进行跳转的时候,UI也要设计得非常到位才行,设计好UI之后就是在Mainactivity.java里写实现代码,我们要监听每个按钮,并根据按钮上的信息计算出相应的结果,代码如下:
package com.example.calculator01;
import bsh.EvalError;
import bsh.Interpreter;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
int[] ID={R.id.back,R.id.sqrt,R.id.clear,R.id.plus,R.id.sub,R.id.mul,R.id.div,R.id.one,R.id.two,R.id.three,R.id.zero,
R.id.four,R.id.five,R.id.six,R.id.point,R.id.seven,R.id.eight,R.id.nine,R.id.equles};
Button[] btn = new Button[19];
String tag="MainActivity";
EditText result;
Interpreter iter=new Interpreter();
int flag=0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
result = (EditText) findViewById(R.id.editText);
for(int i=0;i<19;i++){
btn[i] = (Button)findViewById(ID[i]);
btn[i].setOnClickListener(onclicklistener);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
OnClickListener onclicklistener = new OnClickListener(){
public void onClick(View v) {
Button btn_v = (Button)v;
String str;
if(flag==1){
result.setText("");
flag =0;
}else{
str = result.getText().toString();
}
str = result.getText().toString();
if(btn_v!=btn[18]&&btn_v!=btn[0]&&btn_v!=btn[2]){
str = (str+btn_v.getText());
result.setText(str);
}
if(btn_v==btn[0]){
if(str.length()!=0){
str = str.substring(0, str.length()-1);
result.setText(str);
}
}
if(btn_v==btn[2]){
result.setText("");
}if(btn_v==btn[18]){
try {
String r=""+iter.eval(result.getText().toString());
if(r.equals(null)){
result.setText("");
}
//输出表达式
Log.d(tag, result.getText().toString());
result.setText(r);
}
catch (EvalError e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
flag =1;
// result.setText("");
}
}
};
代码写好之后我们就要进行调试,调试时候可以用模拟器或者真机,推荐使用真机,因为模拟器会很慢,运行之后也会有卡顿,调试信息我们可以在logcat里面进行分析并改正:
先写到这里,还会继续总结。