`
anson_xu
  • 浏览: 513138 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类

android应用集

阅读更多

1、sdk到tool目录配置到path中后,通过android -h命令来查看是否sdk安装成功。
apk文件放tool目录下

命令行到tool目录下

加载apk文件:adb install android_apk_name.apk


卸载apk文件:adb shell         
                  cd data
                  cd app
                  rm -r android_apk_name.apk
如果卸载出现问题用下面的命令
  1.$adb kill-server
  2.$adb start-server
  如果您想测试deamon是否在运行,输入:$adb shell
  卸载你测试应用做法是
  $adb shell rm your_application.apk

 

LinearLayout  讲自己包含的子元素安照一个方向进行排列方向有两种,水平或者竖直,通过Android:orientation=“vertical”或“horizontal”来实现,所以的元素排列都是一个接一个的。

FrameLayout 屏幕上提前预定的空白区域,然后可以填充一些元素到里边,所以的元素都被放置在区域最左上的区域。无法为这些元素指定
一个确切的位置。如果有过个元素,那么后边的元素的显示会重叠在前一个元素上。

TableLayout 表格布局,把包含的元素以行和列进行排列。表格的列数为每一行的最大列数。

 
 
  1. public void onCreate(Bundle savedInstanceState) {
  2. super.onCreate(savedInstanceState);
  3. LinearLayout layoutMain = new LinearLayout(this);
  4. layoutMain.setOrientation(LinearLayout.HORIZONTAL);
  5. setContentView(layoutMain);
  6. LayoutInflater inflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  7. RelativeLayout layoutLeft = (RelativeLayout) inflate.inflate(
  8. R.layout.left, null);
  9. RelativeLayout layoutRight = (RelativeLayout) inflate.inflate(
  10. R.layout.right, null);

  11. RelativeLayout.LayoutParams relParam = new RelativeLayout.LayoutParams(
  12. RelativeLayout.LayoutParams.WRAP_CONTENT,
  13. RelativeLayout.LayoutParams.WRAP_CONTENT);
  14. layoutMain.addView(layoutLeft, 100, 100);//第一个参数是添加进去的view,第二个是view的高度,第三个参数是view的宽度
  15. layoutMain.addView(layoutRight, relParam);
  16. }

setTitle(“”) 设置标题很独立在代码中。
setContentView(R。layout。main)负责当前的Activity与布局xml文件相关联。
Android:id 是这个组件的唯一标识,通过findViewById(R。id。xxx)来找到,后强制转换成相应的组件。

Android:textSize 设置字体大小,Android:padding 设置组件周围空隙大小,android:textColor设置字体的颜色,android:text设置显示值

 

 

SQLiteDataBase

一个SQLiteDataBase的实例代表了一个SQLite的数据库,通过SQLiteDataBase实例的一些方法,我们可以执行SQL语句,对数据库进行增、删、改、查等操作。需要注意的是有一个应用来说是私有的,并且在一个应用中,数据库的名字也是唯一的。

SQLiteOpenHelper

这个类主要是生成一个数据库,并对数据库的版本进行管理。当在程序中调用这个类的方法getWritableDatabase()或者getReadableDatabase()方法的时候,如果当时没有数据,那么Android系统就会自动生成一个数据库。SQLiteOpenHelper是一个抽象类,我们需要继承它,并且实现里面三个方法具体函数如下:
onCreate(SQLiteDataBase)在数据库第一次生成的时候会调用这个方法,一般我们在这个方法里边生成数据库表。
onUpgrade(SQLiteDataBase,int,int)当数据库需要升级的时候,Android系统会主动的调用这个方法。一般我们在这个方法里边删除数据表,并建立新的数据表,是否还需要做其他的操作,完全取决于应用的需要。
onOpen(SQLiteDataBase)这个是打开数据时的回调函数,一般不会用到。

Cursor

接口,通过Cursor我们可以对从数据库查询出来的结果集进行随机的读写访问。

 

 

  1. package com.ex08_1.SQLite;

  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.database.Cursor;
  5. import android.database.SQLException;
  6. import android.database.sqlite.SQLiteDatabase;
  7. import android.database.sqlite.SQLiteOpenHelper;
  8. import android.os.Bundle;
  9. import android.util.Log;
  10. import android.view.View;
  11. import android.view.View.OnClickListener;
  12. import android.widget.Button;

  13. public class ActivityMain extends Activity {
  14. OnClickListener listener1 = null;
  15. OnClickListener listener2 = null;
  16. OnClickListener listener3 = null;
  17. OnClickListener listener4 = null;
  18. OnClickListener listener5 = null;

  19. Button button1;
  20. Button button2;
  21. Button button3;
  22. Button button4;
  23. Button button5;

  24. DatabaseHelper mOpenHelper;

  25. private static final String DATABASE_NAME = "dbForTest.db";
  26. private static final int DATABASE_VERSION = 1;
  27. private static final String TABLE_NAME = "diary";
  28. private static final String TITLE = "title";
  29. private static final String BODY = "body";

  30. private static class DatabaseHelper extends SQLiteOpenHelper {
  31. DatabaseHelper(Context context) {
  32. super(context, DATABASE_NAME, null, DATABASE_VERSION);
  33. }

  34. @Override
  35. public void onCreate(SQLiteDatabase db) {

  36. String sql = "CREATE TABLE " + TABLE_NAME + " (" + TITLE
  37. + " text not null, " + BODY + " text not null " + ");";
  38. Log.i("haiyang:createDB=", sql);
  39. db.execSQL(sql);

  40. }

  41. @Override
  42. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  43. }
  44. }

  45. @Override
  46. public void onCreate(Bundle savedInstanceState) {
  47. super.onCreate(savedInstanceState);
  48. setContentView(R.layout.main);
  49. prepareListener();
  50. initLayout();
  51. mOpenHelper = new DatabaseHelper(this);

  52. }

  53. private void initLayout() {
  54. button1 = (Button) findViewById(R.id.button1);
  55. button1.setOnClickListener(listener1);

  56. button2 = (Button) findViewById(R.id.button2);
  57. button2.setOnClickListener(listener2);

  58. button3 = (Button) findViewById(R.id.button3);
  59. button3.setOnClickListener(listener3);
  60. button4 = (Button) findViewById(R.id.button4);
  61. button4.setOnClickListener(listener4);

  62. button5 = (Button) findViewById(R.id.button5);
  63. button5.setOnClickListener(listener5);

  64. }

  65. private void prepareListener() {
  66. listener1 = new OnClickListener() {
  67. public void onClick(View v) {
  68. CreateTable();
  69. }
  70. };
  71. listener2 = new OnClickListener() {
  72. public void onClick(View v) {
  73. dropTable();
  74. }
  75. };
  76. listener3 = new OnClickListener() {
  77. public void onClick(View v) {
  78. insertItem();
  79. }
  80. };
  81. listener4 = new OnClickListener() {
  82. public void onClick(View v) {
  83. deleteItem();
  84. }
  85. };
  86. listener5 = new OnClickListener() {
  87. public void onClick(View v) {
  88. showItems();
  89. }
  90. };
  91. }

  92. /*
  93. * 重新建立数据表
  94. */
  95. private void CreateTable() {
  96. SQLiteDatabase db = mOpenHelper.getWritableDatabase();
  97. String sql = "CREATE TABLE " + TABLE_NAME + " (" + TITLE
  98. + " text not null, " + BODY + " text not null " + ");";
  99. Log.i("haiyang:createDB=", sql);

  100. try {
  101. db.execSQL("DROP TABLE IF EXISTS diary");
  102. db.execSQL(sql);
  103. setTitle("数据表成功重建");
  104. } catch (SQLException e) {
  105. setTitle("数据表重建错误");
  106. }
  107. }

  108. /*
  109. * 删除数据表
  110. */
  111. private void dropTable() {
  112. SQLiteDatabase db = mOpenHelper.getWritableDatabase();
  113. String sql = "drop table " + TABLE_NAME;
  114. try {
  115. db.execSQL(sql);
  116. setTitle("数据表成功删除:" + sql);
  117. } catch (SQLException e) {
  118. setTitle("数据表删除错误");
  119. }
  120. }

  121. /*
  122. * 插入两条数据
  123. */
  124. private void insertItem() {
  125. SQLiteDatabase db = mOpenHelper.getWritableDatabase();
  126. String sql1 = "insert into " + TABLE_NAME + " (" + TITLE + ", " + BODY
  127. + ") values('haiyang', 'android的发展真是迅速啊');";
  128. String sql2 = "insert into " + TABLE_NAME + " (" + TITLE + ", " + BODY
  129. + ") values('icesky', 'android的发展真是迅速啊');";
  130. try {
  131. Log.i("haiyang:sql1=", sql1);
  132. Log.i("haiyang:sql2=", sql2);
  133. db.execSQL(sql1);
  134. db.execSQL(sql2);
  135. setTitle("插入两条数据成功");
  136. } catch (SQLException e) {
  137. setTitle("插入两条数据失败");
  138. }
  139. }

  140. /*
  141. * 删除其中的一条数据
  142. */
  143. private void deleteItem() {
  144. try {
  145. SQLiteDatabase db = mOpenHelper.getWritableDatabase();
  146. db.delete(TABLE_NAME, " title = 'haiyang'", null);
  147. setTitle("删除title为haiyang的一条记录");
  148. } catch (SQLException e) {

  149. }

  150. }

  151. /*
  152. * 在屏幕的title区域显示当前数据表当中的数据的条数。
  153. */
  154. private void showItems() {

  155. SQLiteDatabase db = mOpenHelper.getReadableDatabase();
  156. String col[] = { TITLE, BODY };
  157. Cursor cur = db.query(TABLE_NAME, col, null, null, null, null, null);
  158. Integer num = cur.getCount();
  159. setTitle(Integer.toString(num) + " 条记录");
  160. }
  161. }

ContentValues
利用ContentValues来代替原来SQL语句进行数据库的操作。ContentValues存储值都只能是基本类型。

SimpleCursorAdapter
SimpleCursorAdapter类和ListView配合进行ListView的显示。

封装SQLiteDatabase,让访问数据更加方便和安全。

重点方法介绍:renderListView()

  1. package com.eoeAndroid.SQLite;

  2. import android.app.ListActivity;
  3. import android.content.Intent;
  4. import android.database.Cursor;
  5. import android.os.Bundle;
  6. import android.view.Menu;
  7. import android.view.MenuItem;
  8. import android.view.View;
  9. import android.widget.ListView;
  10. import android.widget.SimpleCursorAdapter;

  11. /**
  12. * @author jinyan
  13. *
  14. */
  15. public class ActivityMain extends ListActivity {
  16. private static final int ACTIVITY_CREATE = 0;
  17. private static final int ACTIVITY_EDIT = 1;

  18. private static final int INSERT_ID = Menu.FIRST;
  19. private static final int DELETE_ID = Menu.FIRST + 1;

  20. private DiaryDbAdapter mDbHelper;
  21. private Cursor mDiaryCursor;

  22. @Override
  23. public void onCreate(Bundle savedInstanceState) {
  24. super.onCreate(savedInstanceState);
  25. setContentView(R.layout.diary_list);
  26. mDbHelper = new DiaryDbAdapter(this);
  27. mDbHelper.open();
  28. renderListView();

  29. }

  30. private void renderListView() {
  31. mDiaryCursor = mDbHelper.getAllNotes();
  32. startManagingCursor(mDiaryCursor);
  33. String[] from = new String[] { DiaryDbAdapter.KEY_TITLE,
  34. DiaryDbAdapter.KEY_CREATED };
  35. int[] to = new int[] { R.id.text1, R.id.created };
  36. SimpleCursorAdapter notes = new SimpleCursorAdapter(this,
  37. R.layout.diary_row, mDiaryCursor, from, to);
  38. setListAdapter(notes);
  39. }

  40. @Override
  41. public boolean onCreateOptionsMenu(Menu menu) {
  42. super.onCreateOptionsMenu(menu);
  43. menu.add(0, INSERT_ID, 0, R.string.menu_insert);
  44. menu.add(0, DELETE_ID, 0, R.string.menu_delete);
  45. return true;
  46. }

  47. @Override
  48. public boolean onMenuItemSelected(int featureId, MenuItem item) {
  49. switch (item.getItemId()) {
  50. case INSERT_ID:
  51. createDiary();
  52. return true;
  53. case DELETE_ID:
  54. mDbHelper.deleteDiary(getListView().getSelectedItemId());
  55. renderListView();
  56. return true;
  57. }
  58. return super.onMenuItemSelected(featureId, item);
  59. }

  60. private void createDiary() {
  61. Intent i = new Intent(this, ActivityDiaryEdit.class);
  62. startActivityForResult(i, ACTIVITY_CREATE);
  63. }

  64. @Override
  65. // 需要对position和id进行一个很好的区分
  66. // position指的是点击的这个ViewItem在当前ListView中的位置
  67. // 每一个和ViewItem绑定的数据,肯定都有一个id,通过这个id可以找到那条数据。
  68. protected void onListItemClick(ListView l, View v, int position, long id) {
  69. super.onListItemClick(l, v, position, id);
  70. Cursor c = mDiaryCursor;
  71. c.moveToPosition(position);
  72. Intent i = new Intent(this, ActivityDiaryEdit.class);
  73. i.putExtra(DiaryDbAdapter.KEY_ROWID, id);
  74. i.putExtra(DiaryDbAdapter.KEY_TITLE, c.getString(c
  75. .getColumnIndexOrThrow(DiaryDbAdapter.KEY_TITLE)));
  76. i.putExtra(DiaryDbAdapter.KEY_BODY, c.getString(c
  77. .getColumnIndexOrThrow(DiaryDbAdapter.KEY_BODY)));
  78. startActivityForResult(i, ACTIVITY_EDIT);
  79. }

  80. @Override
  81. protected void onActivityResult(int requestCode, int resultCode,
  82. Intent intent) {
  83. super.onActivityResult(requestCode, resultCode, intent);
  84. renderListView();
  85. }
  86. }
  87. ————————————————————————————————————————————————————————————————————————
  88. package com.eoeAndroid.SQLite;

  89. import java.util.Calendar;
  90. import java.util.Date;

  91. import android.content.ContentValues;
  92. import android.content.Context;
  93. import android.database.Cursor;
  94. import android.database.SQLException;
  95. import android.database.sqlite.SQLiteDatabase;
  96. import android.database.sqlite.SQLiteOpenHelper;
  97. import android.util.Log;

  98. public class DiaryDbAdapter {

  99. public static final String KEY_TITLE = "title";
  100. public static final String KEY_BODY = "body";
  101. public static final String KEY_ROWID = "_id";
  102. public static final String KEY_CREATED = "created";

  103. private static final String TAG = "DiaryDbAdapter";
  104. private DatabaseHelper mDbHelper;
  105. private SQLiteDatabase mDb;

  106. private static final String DATABASE_CREATE = "create table diary (_id integer primary key autoincrement, "
  107. + "title text not null, body text not null, created text not null);";

  108. private static final String DATABASE_NAME = "database";
  109. private static final String DATABASE_TABLE = "diary";
  110. private static final int DATABASE_VERSION = 1;

  111. private final Context mCtx;

  112. private static class DatabaseHelper extends SQLiteOpenHelper {

  113. DatabaseHelper(Context context) {
  114. super(context, DATABASE_NAME, null, DATABASE_VERSION);
  115. }

  116. @Override
  117. public void onCreate(SQLiteDatabase db) {
  118. db.execSQL(DATABASE_CREATE);
  119. }

  120. @Override
  121. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  122. db.execSQL("DROP TABLE IF EXISTS diary");
  123. onCreate(db);
  124. }
  125. }

  126. public DiaryDbAdapter(Context ctx) {
  127. this.mCtx = ctx;
  128. }

  129. public DiaryDbAdapter open() throws SQLException {
  130. mDbHelper = new DatabaseHelper(mCtx);
  131. mDb = mDbHelper.getWritableDatabase();
  132. return this;
  133. }

  134. public void closeclose() {
  135. mDbHelper.close();
  136. }

  137. public long createDiary(String title, String body) {
  138. ContentValues initialValues = new ContentValues();
  139. initialValues.put(KEY_TITLE, title);
  140. initialValues.put(KEY_BODY, body);
  141. Calendar calendar = Calendar.getInstance();
  142. String created = calendar.get(Calendar.YEAR) + "年"
  143. + calendar.get(Calendar.MONTH) + "月"
  144. + calendar.get(Calendar.DAY_OF_MONTH) + "日"
  145. + calendar.get(Calendar.HOUR_OF_DAY) + "时"
  146. + calendar.get(Calendar.MINUTE) + "分";
  147. initialValues.put(KEY_CREATED, created);
  148. return mDb.insert(DATABASE_TABLE, null, initialValues);
  149. }

  150. public boolean deleteDiary(long rowId) {

  151. return mDb.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
  152. }

  153. public Cursor getAllNotes() {

  154. return mDb.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_TITLE,
  155. KEY_BODY, KEY_CREATED }, null, null, null, null, null);
  156. }

  157. public Cursor getDiary(long rowId) throws SQLException {

  158. Cursor mCursor =

  159. mDb.query(true, DATABASE_TABLE, new String[] { KEY_ROWID, KEY_TITLE,
  160. KEY_BODY, KEY_CREATED }, KEY_ROWID + "=" + rowId, null, null,
  161. null, null, null);
  162. if (mCursor != null) {
  163. mCursor.moveToFirst();
  164. }
  165. return mCursor;

  166. }

  167. public boolean updateDiary(long rowId, String title, String body) {
  168. ContentValues args = new ContentValues();
  169. args.put(KEY_TITLE, title);
  170. args.put(KEY_BODY, body);
  171. Calendar calendar = Calendar.getInstance();
  172. String created = calendar.get(Calendar.YEAR) + "年"
  173. + calendar.get(Calendar.MONTH) + "月"
  174. + calendar.get(Calendar.DAY_OF_MONTH) + "日"
  175. + calendar.get(Calendar.HOUR_OF_DAY) + "时"
  176. + calendar.get(Calendar.MINUTE) + "分";
  177. args.put(KEY_CREATED, created);

  178. return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
  179. }
  180. }

 

Activity中取的Drawable的方法
Resources resources = getBaseContext().getResources();
Drawable drawable = resources.getDrawable(R.drawable.white);
snippet for searching through Google
Intent intent = new Intent();
intent.setAction(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY,"searchString")
startActivity(intent);

AudioTrack   AudioRecord
http://www.eoeandroid.com/thread-1071-1-6.html
http://blog.sina.com.cn/s/blog_6309e1ed0100j1rw.html
http://dev.10086.cn/cmdn/bbs/thread-16500-1-1.html

 

  1. int y = 0;
  2. public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
  3.   LayoutInflater factory = LayoutInflater.from(myListView.this);
  4.   final View textEntryView = factory.inflate(R.layout.paopao_alert_dialog, null);
  5.   Object obj = getSystemService(Context.WINDOW_SERVICE);   
  6.   WindowManager wm = (WindowManager) obj;   
  7.   int envWidth = wm.getDefaultDisplay().getWidth();   
  8.   int envHeight = wm.getDefaultDisplay().getHeight();  
  9.   if(pw == null)
  10.   {
  11.    pw = new PopupWindow(textEntryView);
  12.    pw.showAtLocation(v, Gravity.LEFT,0,0);
  13.   }else if(!pw.isShowing()){
  14.    pw = new PopupWindow(textEntryView);
  15.    pw.showAtLocation(v, Gravity.LEFT,0,0);
  16.   }
  17.   int pwH = 70;
  18.   int pwW = 166;
  19.   y = -envHeight/2+v.getTop() + pwH;
  20.   pw.update(0,y,pwW,pwH);

  21.   textEntryView.findViewById(R.id.phone).setOnClickListener(new View.OnClickListener() {
  22.    public void onClick(View v) {
  23.     // TODO Auto-generated method stub
  24.     pw.dismiss();
  25.    }
  26.   });
拨打电话:


Intent myIntentDial = new Intent("android.intent.action.CALL",Uri.parse("tel:"+strInput))
<uses-permission android:name="android.permission.CALL_PHONE"/>

验证号码Android:phoneNumber=“true”

如果调用虚拟键盘拨打电话Intent myIntentDial = new Intent("android.intent.action.DIAL",Uri.parse("tel:"+strInput))

 

 

发送短信

PendingIntent mPI = PendingIntent.getBroadcast(Activity.this,0,new Intent(),0);
SmsManager smsManager = SmsManager.getDefault();
smsManager .sendTextMessage(收件人地址String,发送地址String,正文String,发送服务PendingIntent ,送到服务PendingIntent );

如果直接使用PendingIntent 是有目的的传送, 那广播可真算是漫无目的的传送信息了
 
分享到:
评论

相关推荐

    Android应用源码45套安卓源码合集.zip

    Android应用源码45套安卓源码合集: android中文离线发音引擎FOCTTS使用源码.rar Android应用源码(精)LBS签到应用源码.rar Android应用源码(精)xUtils2.2.5.rar Android应用源码(精)仿博客园客户端源码.rar Android...

    13套安卓源码合集Android应用源码.zip

    Android应用源码13套安卓源码合集: android应用源码仿ireader书架.rar android应用源码动画效果 translate、scale、alpha、rotate 切换Activity动画.rar android应用源码可以报警的手电.rar android应用源码图片...

    Android应用源码10套安卓源码合集.zip

    Android应用源码10套安卓源码合集: android应用源码DroidBrowser浏览器.rar android应用源码QQ_UI之分类菜单.rar android应用源码QQ的登录界面.rar android应用源码Socket的客户端通信.rar android应用源码tooxin图...

    Android应用源码11套安卓源码合集.zip

    Android应用源码11套安卓源码合集: Android Gps日志记录程序源码.rar Android listview 滑动删除(具体效果360手机卫士后台通知).rar Android MP3播放器,带卡拉OK字幕.rar Android “遇见”android应用源码.rar ...

    Android应用源码30套安卓源码合集.zip

    Android应用源码30套安卓源码合集: andriod闹钟源代码.rar Android Gps日志记录程序源码.rar Android MP3播放器,带卡拉OK字幕.rar Android 个人记账程序源码.rar Android 仿Mac的Dock.rar Android 口袋微博服务器...

    004集-android的应用领域

    本视频教程“004集-android的应用领域”针对初学者,将全面解析Android系统的广泛应用。 首先,Android在智能手机市场占据主导地位,它的应用商店Google Play拥有海量的应用程序,涵盖社交、娱乐、教育、生活服务等...

    Android移动应用开发 第3版 卷1卷2合集part2

    android用户界面设计精髓 android应用程序设计精髓 对外发布你的android应用程序和附录6个部分 附录还包含了android开发常用工具 模拟器 ddms和eclipse 的使用指南 《Android移动应用开发 第3版 卷Ⅱ:提高篇》...

    Android应用程序概述

    Android应用程序概述 Android操作系统是目前全球最流行的移动设备操作系统之一,尤其在智能手机和平板电脑市场占据了主导地位。Android系统以其开放源代码、丰富的定制性和强大的开发者社区为特点,吸引了无数用户...

    Android应用源码安卓源码(172个合集).zip

    Android应用源码安卓源码(172个合集),可以做为你的学习参考。 365MobileSecretary v1.0.6(365手机助手AIDL) 888个经典 Logo.rar AdXmpp(Openfire+asmack+spark) .zip AidlDemo(简单aidl的例子) aidl跨进程调用....

    android应用案例开发大全(源码)

    "Android应用案例开发大全(源码)"提供了一套完整的案例集,旨在帮助开发者深入理解Android平台上的应用程序设计和实现。这些案例覆盖了从基础功能到高级特性的各种应用场景,通过分析和实践这些源码,你可以了解到...

    android 应用开发指南 经典教材 CHM格式

    5. **Android SDK**:Google SDK是Android应用开发的核心工具集,包含API库、开发工具和其他资源。了解如何安装、配置和使用SDK是开始开发的首要步骤。 6. **AndroidManifest.xml**:这是每个Android应用的关键文件...

    Android应用管理器

    总的来说,Android应用管理器是一个集多种技术于一体的工具,它涉及到Android系统的多个核心组件和服务,如PackageManager、ActivityManager和Intent机制。通过理解和掌握这些知识,开发者不仅能创建出高效且用户...

    Android应用架构设计

    Android应用架构设计是移动开发领域中的一个重要话题,它关乎到应用程序的可维护性、可扩展性和团队协作效率。良好的架构设计能够使代码更加模块化,降低耦合度,便于后期的迭代和升级。以下是一些关于Android应用...

    Android 应用开发基础

    Android应用的开发通常基于Android SDK(软件开发工具包),它是进行Android应用开发必不可少的工具集。它包含了库文件、API以及可以运行Android应用的模拟器。使用Android SDK,开发者可以创建新的工程,并通过底层...

    Android应用开发 (美)黑斯曼 著 pdf

    《Android应用开发》主要介绍如何使用Android提供的强大工具集开发Android应用。全书对Android操作系统做了全面的介绍,首先讲解了安装、配置Android SDK和Eclipse IDE安装环境,接着从使用构建块来创建直观、漂亮的...

    Android常用图标集

    一套完整的Android图标集可以帮助开发者创建出界面美观、一致性良好的应用。本文将深入探讨Android常用图标集及其重要性,以及如何有效地使用这些图标。 首先,我们来理解Android图标的基本类型。在Android系统中,...

    大话企业级Android应用开发实战完整源代码

    "大话企业级Android应用开发实战完整源代码"这个资料集很可能包含了实现这些目标的关键技术和实践案例。 1. **数据安全**:在企业应用中,数据安全是至关重要的。这可能涉及到加密技术的使用,如SSL/TLS协议用于...

    android应用开发基础教程

    3. **安装Android SDK**:Android SDK是Android应用开发的必备工具集,包含了编译、调试、测试等所需的工具。文档虽未详述,但通常需要从Google官方网站下载SDK并进行安装。 4. **安装集成开发环境IDE**:文档中...

    Android安卓应用程序开发实例源码合集(安卓工程源码).zip

    7个经典Android应用程序实例源代码.rar Android 培训--18个单项功能实例源码.rar Android 小项目开发示例大全--20个通用具体应用程序实例源码.rar Android 文件下载功能Java多线程下载功能的例子实例源码.rar ...

    Android应用开发基础习题集.doc

    【Android应用开发基础习题集】 Android应用开发是构建移动应用程序的过程,主要针对谷歌的Android操作系统。本习题集旨在帮助初学者掌握Android应用开发的基础知识,包括环境搭建、编程语法、应用程序结构以及控件...

Global site tag (gtag.js) - Google Analytics