- 浏览: 392197 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
lalaeye:
学习一下,明天再看。
android框架设计 -
418702610:
...
Collections.synchronizedMap(new LinkedHashMap()) -
mao_lu:
给个代码下载吧,谢谢
在Android中创建和使用数据库 -
lyltiger:
那就是说单纯的android测试还不能进行!
Android单元测试 -
貌似掉线:
貌似是我想要的。。先标记一下,明天起来看。。
Android单元测试
这是对框架设计应用的一个小的总结
说明:
1、一开始,框架反向呼叫onCreate()函数,也呼叫onCreateOptionsMenu()函数
2、当你选取<Add Item>选项时,框架会反向呼叫onOptionsItemSelected()函数
在我们修改了/res/values/strings.xml内容之后,记住要存档,因为这样可以更新R.java的内容,让menu.add()指令能找到所要的字符串。
1、R.java是连接*.java的程序码档案和*.xml布局档案的中介桥梁。
2、在.xml档案中,Eclipse根据其内的内容而自动产生一个R类别,作为应用程序设计者,并不需要去修改它。
3、当这些.xml档案有更新时,Eclipse就会在你确认并将*.xml存档时,自动更新它。
4、更加方便地去管理资源。
下面来介绍如何呈现按钮
首先来看看构建按钮的一般的步骤:
package com.misoo.ex02;
说明:Button btn=(Button)findViewById(R.id.button);找出目前的布局里的按钮参考,并存放人btn内。
指令btn.setOnClickListener(this)设定按钮事件的处理程式,应额外事件监听者。当使用者按下id值为id/button的按钮时,框架必须把事件准确地传送到恰当的类别,并呼叫所指定的函数。其中的参数:this就表示此按钮事件必须传送到本地类别的物件,也就是目前物件。
当然,还可以创建出带有背景的按钮,对应的类别为ImageButton.
下面介绍如何进行书面的布局
1、像按钮这种屏幕控制项,在Android中,则通讲为View,其中,像Button是最小单元的View,多个小的View可以构成一个集合类型的View。
2、多个View能组合在一起,就会各种排列方式,即讲布局Layout.
3、最基本的布局为:垂直和水平排列
//下面这两条指令诞生一个LinearLayout的集合型的View物件,并且设定为垂直类型布局
Drawable dw = this.getResources().getDrawable(R.drawable.ok); //Drawable类型??
btn.setImageDrawable(dw); //设置btn的图像为dw.
btn.setOnClickListener(listener);
//下面的指令诞生一个LayoutParams物件,并且把WC参数存入该物件里,此参数说明了我们希
下面介绍如何呈现List选单
这个程式展现了MVC的基本架构
Activity 对应着的是Controller
ListView 对应着的是View
DataModel对应着的是Model
下面同样是ListView多对应的功能
package com.misoo.ex06;
//下面的dm.loadData()呼叫DataModel的loadData()函数将xml字符串或者是表格资料加入到ArrayList<Map<String,Object>>的集合物件中。
coll = dm.loadData();
//下面的指令将coll集合物件的资料传给SimpleAdapter物件,SimpleAdapter物件依据参数的
指定来从coll取出资料,并设定显示的树形等等。
}
package com.misoo.ex01; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class ex01 extends Activity { public static final int ADD_ID = Menu.FIRST; public static final int DELETE_ID = Menu.FIRST + 1; public static final int EXIT_ID = Menu.FIRST + 2; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, ADD_ID, 0, R.string.menu_add); menu.add(0, DELETE_ID, 1, R.string.menu_delete); menu.add(0, EXIT_ID, 2, R.string.menu_exit); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case ADD_ID: setTitle("Insert..."); break; case DELETE_ID: setTitle("Delete..."); break; case EXIT_ID: finish(); break; } return super.onOptionsItemSelected(item); }}
说明:
1、一开始,框架反向呼叫onCreate()函数,也呼叫onCreateOptionsMenu()函数
2、当你选取<Add Item>选项时,框架会反向呼叫onOptionsItemSelected()函数
在我们修改了/res/values/strings.xml内容之后,记住要存档,因为这样可以更新R.java的内容,让menu.add()指令能找到所要的字符串。
1、R.java是连接*.java的程序码档案和*.xml布局档案的中介桥梁。
2、在.xml档案中,Eclipse根据其内的内容而自动产生一个R类别,作为应用程序设计者,并不需要去修改它。
3、当这些.xml档案有更新时,Eclipse就会在你确认并将*.xml存档时,自动更新它。
4、更加方便地去管理资源。
下面来介绍如何呈现按钮
首先来看看构建按钮的一般的步骤:
package com.misoo.ex02;
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class ex02 extends Activity implements OnClickListener { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); Button btn = (Button)findViewById(R.id.button); Button btn2 = (Button)findViewById(R.id.button2); btn.setOnClickListener(this); btn2.setOnClickListener(this); } public void onClick(View arg0) { switch (arg0.getId()) { case R.id.button: setTitle("this is OK button"); break; case R.id.button2: this.finish(); break; } }} 下面是对应的.xml文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/tv" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="OK" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Exit" /> </LinearLayout>
说明:Button btn=(Button)findViewById(R.id.button);找出目前的布局里的按钮参考,并存放人btn内。
指令btn.setOnClickListener(this)设定按钮事件的处理程式,应额外事件监听者。当使用者按下id值为id/button的按钮时,框架必须把事件准确地传送到恰当的类别,并呼叫所指定的函数。其中的参数:this就表示此按钮事件必须传送到本地类别的物件,也就是目前物件。
当然,还可以创建出带有背景的按钮,对应的类别为ImageButton.
下面介绍如何进行书面的布局
1、像按钮这种屏幕控制项,在Android中,则通讲为View,其中,像Button是最小单元的View,多个小的View可以构成一个集合类型的View。
2、多个View能组合在一起,就会各种排列方式,即讲布局Layout.
3、最基本的布局为:垂直和水平排列
import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageButton; import android.widget.LinearLayout; public class ex04 extends Activity { private final int WC = LinearLayout.LayoutParams.WRAP_CONTENT; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle);
//下面这两条指令诞生一个LinearLayout的集合型的View物件,并且设定为垂直类型布局
LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); ImageButton btn = new ImageButton(this);
Drawable dw = this.getResources().getDrawable(R.drawable.ok); //Drawable类型??
btn.setImageDrawable(dw); //设置btn的图像为dw.
btn.setOnClickListener(listener);
//下面的指令诞生一个LayoutParams物件,并且把WC参数存入该物件里,此参数说明了我们希
望这个按钮的长宽大小 LinearLayout.LayoutParams param =new LinearLayout.LayoutParams(WC, WC); layout.addView(btn, param); ImageButton btn2 = new ImageButton(this); dw = this.getResources().getDrawable(R.drawable.exit); btn2.setImageDrawable(dw); btn2.setOnClickListener(listener2); layout.addView(btn2, param); //将ImageButton或是Button物件加入到layout里成为一组 LinearLayout out_layout = new LinearLayout(this); out_layout.setOrientation(LinearLayout.HORIZONTAL); Button btn3 = new Button(this); btn3.setText("Cancel"); btn3.setTextColor(Color.WHITE); btn3.setBackgroundColor(Color.RED); btn3.setOnClickListener(listener3); out_layout.addView(layout, param); LinearLayout.LayoutParams param2 =new LinearLayout.LayoutParams(WC, WC); param2.topMargin = 30; out_layout.addView(btn3, param2); setContentView(out_layout); } OnClickListener listener = new OnClickListener(){ public void onClick(View v) { setTitle("this is OK button"); } }; OnClickListener listener2 = new OnClickListener() { public void onClick(View v) { finish(); } }; OnClickListener listener3 = new OnClickListener() { public void onClick(View v) { setTitle("this is Cancel button"); } }; }
下面介绍如何呈现List选单
这个程式展现了MVC的基本架构
Activity 对应着的是Controller
ListView 对应着的是View
DataModel对应着的是Model
import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; public class ex05 extends Activity implements OnItemClickListener { public static final int RELOAD_ID = Menu.FIRST; public static final int EXIT_ID = Menu.FIRST + 1; ListView lv; ArrayAdapter<String> adapter; //声明一个泛型adapter DataModel dm; //声明一个数据模型dm @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); dm = new DataModel(); //创建一个模型 lv = new ListView(this); //创建一个列表视图 adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dm.loadData()); //这诞生一个ArrayAdapter的物件,并呼叫dm.loadData()函数取得选单所需要的内容,存入此新的物件里。 lv.setAdapter(adapter); //向adapter物件取得选单内容 lv.setOnItemClickListener(this); //设定ListView选单时间的处理程式,又称为事件监听者。 setContentView(lv); } public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) //这是列表视图操作所响应的事 { setTitle("choice: " + String.valueOf(dm.getPrice(arg2))); } @Override public boolean onCreateOptionsMenu(Menu menu) //这个操作是用来进行菜单的选项的设计的 { super.onCreateOptionsMenu(menu); //对于菜单的设计,在使用onCreateOptionMenu时,都需要这个操作,即让父类来实现绘画功能 menu.add(0, RELOAD_ID, 0, "Reload"); //添加菜单选项 MenuItem im = menu.findItem(RELOAD_ID); // im.setIcon(R.drawable.reload_im); menu.add(0, EXIT_ID, 1, "Exit"); im = menu.findItem(EXIT_ID); im.setIcon(R.drawable.exit_im); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) //这个选项是在选择菜单时所产生的动作 { switch (item.getItemId()) { case RELOAD_ID: //如果选择的是第一个菜单,那么就执行下面的这个功能 adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dm.loadData()); lv.setAdapter(adapter); break; case EXIT_ID: //如果选择的是第二个菜单,那么就执行退出操作 finish(); break; } return super.onOptionsItemSelected(item); } } public class DataModel { private String[]data, xdata; private double[] price; private boolean k = true; public DataModel() { data = new String[3]; data[0] = "Item-1"; data[1] = "Item-2"; data[2] = "Item-3"; xdata = new String[3]; xdata[0] = "Prod-x"; xdata[1] = "Prod-y"; xdata[2] = "Prod-z"; price = new double[3]; price[0] = 305.5; price[1] = 56.75; price[2] = 100.25; } public String[] loadData() { k = !k; if(k) return xdata; else return data; } public double getPrice(int i) { return price[i]; } }
下面同样是ListView多对应的功能
package com.misoo.ex06;
import java.util.ArrayList; import java.util.Map; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener; public class ex06 extends Activity { private ListView lv; private TextView tv; private DataModel dm; private ArrayList<Map<String, Object>> coll; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); dm = new DataModel(); setContentView(R.layout.list); lv = (ListView)findViewById(R.id.list); lv.setOnItemClickListener(listener); tv = (TextView)findViewById(R.id.text);
//下面的dm.loadData()呼叫DataModel的loadData()函数将xml字符串或者是表格资料加入到ArrayList<Map<String,Object>>的集合物件中。
coll = dm.loadData();
//下面的指令将coll集合物件的资料传给SimpleAdapter物件,SimpleAdapter物件依据参数的
指定来从coll取出资料,并设定显示的树形等等。
SimpleAdapter adapter = new SimpleAdapter(this, coll,android.R.layout.simple_list_item_1, new String[] { "prod_na" },new int[] {android.R.id.text1}); lv.setAdapter(adapter); //将SimpleAdapter物件传送给ListView物件,立即更新了书面上List选单的内容. } OnItemClickListener listener = new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { tv.setTextColor(Color.YELLOW); tv.setText(coll.get(arg2).get("prod_type").toString()); } }; } import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class DataModel { public DataModel() {} public ArrayList<Map<String, Object>> loadData() { ArrayList<Map<String, Object>> coll= new ArrayList<Map<String, Object>>(); Map<String, Object> item; item = new HashMap<String, Object>(); item.put("prod_na", "Linux"); item.put("prod_type", "ST"); coll.add(item); item = new HashMap<String, Object>(); item.put("prod_na", "Windows"); item.put("prod_type", "Mobile"); coll.add(item); return coll; } } <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World, ex06" /> <ListView android:id="@+id/list" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 下面介绍如何使用相对布局Relative Layout 分析下面的这段代码: import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.view.LayoutInflater; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener; public class ex07 extends Activity implements OnItemClickListener { private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT; private String[] data = {" Item-1 ", " Item-2 ", " Item-3 "}; private TextView tv; private String selection = "****"; private ArrayAdapter<String> adapter; private boolean[] status = {false, false, false }; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); //这诞生了一个相对布局物件,并设定为此Activity的起始书面布局 RelativeLayout r_layout = new RelativeLayout(this); setContentView(r_layout); //取得一个系统的LAYOUT_INFLATE_SERVICE服务的物件,取名为inflate LayoutInflater inflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); LinearLayout layout = (LinearLayout)inflate.inflate(R.layout.list, null); RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(175, WC); layout.setId(1); r_layout.addView(layout, param); tv = (TextView)layout.findViewById(R.id.text); ListView lv = (ListView)layout.findViewById(R.id.list); lv.setBackgroundResource(R.drawable.bk_red); adapter = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_multiple_choice, data); lv.setAdapter(adapter); lv.setItemsCanFocus(false); lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); lv.setOnItemClickListener( this); Button btn1 = new Button(this); btn1.setBackgroundResource(R.drawable.bk_ok_exit); btn1.setId(2); btn1.setText("OK"); btn1.setOnClickListener(listener); param = new RelativeLayout.LayoutParams(60, WC); param.addRule(RelativeLayout.RIGHT_OF, 1); param.leftMargin = 15; param.topMargin = 20; r_layout.addView(btn1, param); Button btn2 = new Button(this); btn2.setBackgroundResource(R.drawable.bk_ok_exit); btn2.setId(3); btn2.setText("Exit"); btn2.setOnClickListener(listener); param = new RelativeLayout.LayoutParams(60, WC); param.addRule(RelativeLayout.BELOW, 2); param.addRule(RelativeLayout.ALIGN_LEFT, 2); param.topMargin = 25; r_layout.addView(btn2, param); } OnClickListener listener = new OnClickListener() { public void onClick(View v) { if(v.getId() == 2){ String ss = "{"; for(int i=0; i< adapter.getCount(); i++){ if(status[i]) { ss += data[i]; ss += " "; } } ss += "}"; setTitle(ss); } else if(v.getId() == 3) finish(); }}; public void onItemClick(AdapterView<?> arg0, View v, int idx, long arg3) { status[idx] = ! status[idx]; } } <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World, ex07" /> <ListView android:id="@+id/list" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> package com.misoo.ex07; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.view.LayoutInflater; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener; //此程序是采用相对布局方式。所谓的相对是指定我们叙述一个组件的位置时,会以其中的另外一个组件为基准。 public class ex07 extends Activity implements OnItemClickListener { /** Called when the activity is first created. */ private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT; private String[] data = {"Item-1", "Item-2", "Item-3"}; private TextView tv; private String selection = "****"; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); //下面代码诞生了一个相对布局物件,并设定为此Activity的起始书面布局 RelativeLayout r_layout = new RelativeLayout(this); setContentView(r_layout); //下面代码取得一个系统的LAYOUT_INFLATE_SERVICE服务的物件,取名为inflate,但是为什么要获得系统服务呢? LayoutInflater inflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); //下面指令呼叫inflate物件的inflate()函数依据/res/layout/list.xml之定义而诞生一个LinearLayout物件 LinearLayout layout = (LinearLayout)inflate.inflate(R.layout.list, null); //这诞生一个RelativeLayout的参数物件,透过参数物件来设置此layout集合布局的宽度为120点,而高则视其内容而定。 RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(120, WC); layout.setId(1); // r_layout.addView(layout, param); //下面两句代码分别找出layout里面的两个小View,并由tv和lv分别参考之 tv = (TextView)layout.findViewById(R.id.text); ListView lv = (ListView)layout.findViewById(R.id.list); //下面这句代码从data[]阵列取出资料,并交给lv物件,将显示于书面的List选单里 ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1, data); lv.setAdapter(adapter); lv.setOnItemClickListener(this); //------------------------------------------------------ Button btn1 = new Button(this); btn1.setId(2); btn1.setText("OK"); btn1.setOnClickListener(listener); param = new RelativeLayout.LayoutParams(60, WC); param.addRule(RelativeLayout.RIGHT_OF, 1); param.leftMargin = 15; param.topMargin = 20; r_layout.addView(btn1, param); //------------------------------------------------------ Button btn2 = new Button(this); btn2.setId(3); btn2.setText("Exit"); btn2.setOnClickListener(listener); param = new RelativeLayout.LayoutParams(60, WC); param.addRule(RelativeLayout.BELOW, 2); param.addRule(RelativeLayout.ALIGN_LEFT, 2); param.topMargin = 25; r_layout.addView(btn2, param); } OnClickListener listener = new OnClickListener() { public void onClick(View v) { if(v.getId() == 2) tv.setText(selection); else if(v.getId() == 3) finish(); } }; public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub setTitle(data[arg2]); selection = data[arg2]; } } package com.misoo.ex08; import android.app.Activity; import android.os.Bundle; import android.widget.Button; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.EditText; import android.widget.TableLayout; import android.widget.TableRow; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; public class ex08 extends Activity implements OnClickListener { private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); //根据下面所说的嵌套层次,首先是定义最大的view,并设定为目前布局(this值) RelativeLayout r_layout = new RelativeLayout(this); setContentView(r_layout); //当书面上的一群view排成一个矩阵或者是表格形式时,就采用TableLayout来叙述其布局方式。 //接着定义第二个的TableLayout,并加入到r_layout里 TableLayout tableLayout = new TableLayout(this); r_layout.addView(tableLayout, new RelativeLayout.LayoutParams(WC, WC)); tableLayout.setId(1); //此程序采用的嵌套层次为:RelativeLayout->TableLayout->TableRow->EditText->Button->ImageView //再定义第三个的TableRow,并加入到tableLayout里 TableRow tableRow1 = new TableRow(this); tableLayout.addView(tableRow1, new TableLayout.LayoutParams(WC, WC)); //最后定义最小的view,并加入到tableRow里 ImageView iv = new ImageView(this); tableRow1.addView(iv); iv.setImageDrawable(getResources().getDrawable(R.drawable.star_big_on)); EditText edit1 = new EditText(this); tableRow1.addView(edit1); //------------------------------------------------- TableRow tableRow2 = new TableRow(this); tableLayout.addView(tableRow2, new TableLayout.LayoutParams(WC, WC)); ImageView iv2 = new ImageView(this); iv2.setImageDrawable(getResources().getDrawable(R.drawable.gallery_photo_4)); tableRow2.addView(iv2); EditText edit2 = new EditText(this); tableRow2.addView(edit2); //------------------------------------------------- Button btn = new Button(this); RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(WC, WC); param.addRule(RelativeLayout.BELOW, 1); param.topMargin = 20; r_layout.addView(btn, param); btn.setText("Exit"); btn.setOnClickListener(this); } public void onClick(View arg0) { // TODO Auto-generated method stub finish(); }
}
发表评论
-
自制android1.5源码包
2009-09-11 13:48 1609具体参考如下: http://www.williamhua.c ... -
Git和Repo扫盲——如何取得Android源代码
2009-09-11 13:46 8245Git 是 Linux Torvalds 为了帮助管理 Lin ... -
Eclipse中android插件的安装
2009-09-11 10:37 19860首先需要下载android的SDK ... -
JUnit基本教程
2009-09-09 16:01 6845使用目的 junit是java中书写unit ... -
android源代码下载
2009-09-08 18:30 160351 Android Source Code Download ... -
android源代码编译
2009-09-08 18:27 4233编译Android过程 建立编译环境, Ubuntu版本Li ... -
使用AIDL(Android接口描述语言)设计和使用远程接口
2009-09-04 10:14 7080目录 1 使用AIDL(AndRoid接口描述语言)设计和 ... -
android外国教材书
2009-09-03 10:25 4181一本不错的Android教程书~~ android bluet ... -
AndroidManifest.xml解析
2009-09-03 09:09 11449AndroidManifest.xml 是每个android程 ... -
Android单元测试
2009-09-02 17:01 20235android源代码中每个app下中都自带了一个test用例, ... -
视频与图像RGB/YUV格式详解
2009-09-02 15:59 3483计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(R ... -
yuv420 转换成RGB565函数
2009-09-02 15:17 8003做ADNROID CAMERA时.发现很多朋友都在找YUV R ... -
Android API :SMS短信服务处理和获取联系人
2009-08-31 15:08 5435许多新的应用程序会考虑使用SMS作为数据分发平台。现实一点的场 ... -
在Android中创建和使用数据库
2009-08-27 22:32 4121每个应用程序都要使用数据,Android应用程序也不例外,An ... -
Android模拟器入门
2009-08-27 15:41 2021要玩google 手机 G1的模拟器,当然需要先去googl ... -
Android JNI简单实例
2009-08-27 15:38 28864Android的jni实例 android 的应用程序(Da ... -
Android内核的简单分析
2009-08-27 15:36 4584Android内核的简单分析 mintelong (vkafe ... -
Android横竖屏切换的解决方法
2009-08-27 15:25 15715package com.cn; import android ... -
Android的IPC机制Binder的详解汇总
2009-08-27 15:16 8402第一部分 Binder的组成 1.1 驱动程序部分驱动程序的部 ... -
Android的Camera架构介绍
2009-08-27 15:12 2383第一部分 Camera概述 Android的Camer ...
相关推荐
要想成为android高手,必须要掌握android框架才能提高开发效率,掌握设计模式提高解决问题速度,代码更健壮,熟悉设计原则会使android开发性能更好
android 框架设计 framework 开发
仿易信主界面设计,包含欢迎页面、和功能界面
github上很火的一个Android UI框架,SlidingMenu.已经将所需要的Actionbarssherlock和SlidingMenu库打包好。下载后解压并且,将Actionbarssherlock,SlidingMenu和SlidingMenuExample这三个文件夹import到eclipse中...
Android通用框架设计与完整电商APP开发,欢迎大家下载,
Android通用网络框架设计思维导图,打造属于自己的敏捷开发框架
Android通用框架设计与完整电商APP开发,附带json文件,全程带你从零设计通用的项目框架,并通过框架快速开发一个完整电商App验证和完善框架的复用性与灵活性等,综合提高你的项目框架设计能力和业务功能的快速实现...
24.Observer样式应用于Android框架设计.doc 25.使用SQLite的Blob储存.mp3档案.doc 26.活用Android的Message Queue1.doc 27.活用Android的Message Queue(2).doc 28.Anrdroid的Message Queue3.doc 29&30认识UI Thread....
android入门书籍+android应用框架设计技巧+android中级+程序员指南
24.Observer样式应用于Android框架设计 25.使用SQLite的Blob储存.mp3档案 26.活用Android的Message Queue(1) 27.活用Android的Message Queue(2) 28.活用Anrdroid的Message Queue(3) 29&30认识UI Thread 31.软...
android程序框架设计.pdf
二、Telephony中多卡及多运营商设计区分 6 1.telephony中的多卡 7 1)AP区分多卡 7 2)modem区分多卡 12 2.telephony中的多运营商设计 14 三、Telephony中AIDL模式设计 15 四、Telephony中观察者模式设计 16 五、...
Android应用框架原理与程序设计36技 Android应用框架原理与程序设计36技Android应用框架原理与程序设计36技Android应用框架原理与程序设计36技Android应用框架原理与程序设计36技Android应用框架原理与程序设计36技
详细讲解各热门框架原理
android常用框架和设计模式
android系统框架介绍,Android系统 = Linux内核 + Android运行时。 Android系统使用的Linux内核包含了一些专用驱动,例如Logger、Binder、Ashmem、Wakelock、Low-Memory Killer和Alarm等,这些Android专用驱动构成了...
(2) 注解模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。 (3) 网络模块:通过httpclient进行封装http数据请求,支持ajax方式加载,支持下载、上传...
Android 应用程序 框架 MVC设计非常好用