- 浏览: 513183 次
- 性别:
- 来自: 惠州
文章分类
- 全部博客 (255)
- ant (1)
- springMVC (2)
- ajax (4)
- oracle (12)
- SSH (13)
- struts1 (2)
- Hibernate (14)
- spring (5)
- jstl (1)
- 连接池 (1)
- acegi (4)
- java (17)
- jquery (11)
- div+css (4)
- drupal (1)
- php (8)
- freemaker调模板生成静态页面 (1)
- xml (1)
- json (2)
- javascript (9)
- 正则表达式 (4)
- Ext (8)
- jdbc (1)
- sql server (2)
- perl (5)
- db4o (1)
- webservice (4)
- flex (13)
- it资讯 (1)
- joomla (0)
- 设计模式 (1)
- struts2 (4)
- s2sh (8)
- linux (3)
- ejb (2)
- android旅途 (24)
- android (36)
- C/C++ (16)
- mysql (1)
最新评论
-
fengyuxing168:
IBelyService bs = IBelyService. ...
为 Android 添加 Java 层服务也就是添加自定义的aidl服务到serviceManager 通过ServiceManager.getService取 -
dengzhangtao:
"由于ActivityManagerService是 ...
binder理解 -
yzyspy:
ActivityManagerService:startHom ...
Android的Launcher成为系统中第一个启动的,也是唯一的 -
Matchstick:
使用SELECT DISTINCT alias FROM Po ...
hibernate 一对多表查询时fetchMode.join 生成left outer join 出来数据重复问题 -
dlheart:
没看懂你什么意思啊,我遇到的问题是一对多,设了fetch = ...
hibernate 一对多表查询时fetchMode.join 生成left outer join 出来数据重复问题
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 表格布局,把包含的元素以行和列进行排列。表格的列数为每一行的最大列数。
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- LinearLayout layoutMain = new LinearLayout(this);
- layoutMain.setOrientation(LinearLayout.HORIZONTAL);
- setContentView(layoutMain);
- LayoutInflater inflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- RelativeLayout layoutLeft = (RelativeLayout) inflate.inflate(
- R.layout.left, null);
- RelativeLayout layoutRight = (RelativeLayout) inflate.inflate(
- R.layout.right, null);
- RelativeLayout.LayoutParams relParam = new RelativeLayout.LayoutParams(
- RelativeLayout.LayoutParams.WRAP_CONTENT,
- RelativeLayout.LayoutParams.WRAP_CONTENT);
- layoutMain.addView(layoutLeft, 100, 100);//第一个参数是添加进去的view,第二个是view的高度,第三个参数是view的宽度
- layoutMain.addView(layoutRight, relParam);
- }
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我们可以对从数据库查询出来的结果集进行随机的读写访问。
- package com.ex08_1.SQLite;
- import android.app.Activity;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.SQLException;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class ActivityMain extends Activity {
- OnClickListener listener1 = null;
- OnClickListener listener2 = null;
- OnClickListener listener3 = null;
- OnClickListener listener4 = null;
- OnClickListener listener5 = null;
- Button button1;
- Button button2;
- Button button3;
- Button button4;
- Button button5;
- DatabaseHelper mOpenHelper;
- private static final String DATABASE_NAME = "dbForTest.db";
- private static final int DATABASE_VERSION = 1;
- private static final String TABLE_NAME = "diary";
- private static final String TITLE = "title";
- private static final String BODY = "body";
- private static class DatabaseHelper extends SQLiteOpenHelper {
- DatabaseHelper(Context context) {
- super(context, DATABASE_NAME, null, DATABASE_VERSION);
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- String sql = "CREATE TABLE " + TABLE_NAME + " (" + TITLE
- + " text not null, " + BODY + " text not null " + ");";
- Log.i("haiyang:createDB=", sql);
- db.execSQL(sql);
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- }
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- prepareListener();
- initLayout();
- mOpenHelper = new DatabaseHelper(this);
- }
- private void initLayout() {
- button1 = (Button) findViewById(R.id.button1);
- button1.setOnClickListener(listener1);
- button2 = (Button) findViewById(R.id.button2);
- button2.setOnClickListener(listener2);
- button3 = (Button) findViewById(R.id.button3);
- button3.setOnClickListener(listener3);
- button4 = (Button) findViewById(R.id.button4);
- button4.setOnClickListener(listener4);
- button5 = (Button) findViewById(R.id.button5);
- button5.setOnClickListener(listener5);
- }
- private void prepareListener() {
- listener1 = new OnClickListener() {
- public void onClick(View v) {
- CreateTable();
- }
- };
- listener2 = new OnClickListener() {
- public void onClick(View v) {
- dropTable();
- }
- };
- listener3 = new OnClickListener() {
- public void onClick(View v) {
- insertItem();
- }
- };
- listener4 = new OnClickListener() {
- public void onClick(View v) {
- deleteItem();
- }
- };
- listener5 = new OnClickListener() {
- public void onClick(View v) {
- showItems();
- }
- };
- }
- /*
- * 重新建立数据表
- */
- private void CreateTable() {
- SQLiteDatabase db = mOpenHelper.getWritableDatabase();
- String sql = "CREATE TABLE " + TABLE_NAME + " (" + TITLE
- + " text not null, " + BODY + " text not null " + ");";
- Log.i("haiyang:createDB=", sql);
- try {
- db.execSQL("DROP TABLE IF EXISTS diary");
- db.execSQL(sql);
- setTitle("数据表成功重建");
- } catch (SQLException e) {
- setTitle("数据表重建错误");
- }
- }
- /*
- * 删除数据表
- */
- private void dropTable() {
- SQLiteDatabase db = mOpenHelper.getWritableDatabase();
- String sql = "drop table " + TABLE_NAME;
- try {
- db.execSQL(sql);
- setTitle("数据表成功删除:" + sql);
- } catch (SQLException e) {
- setTitle("数据表删除错误");
- }
- }
- /*
- * 插入两条数据
- */
- private void insertItem() {
- SQLiteDatabase db = mOpenHelper.getWritableDatabase();
- String sql1 = "insert into " + TABLE_NAME + " (" + TITLE + ", " + BODY
- + ") values('haiyang', 'android的发展真是迅速啊');";
- String sql2 = "insert into " + TABLE_NAME + " (" + TITLE + ", " + BODY
- + ") values('icesky', 'android的发展真是迅速啊');";
- try {
- Log.i("haiyang:sql1=", sql1);
- Log.i("haiyang:sql2=", sql2);
- db.execSQL(sql1);
- db.execSQL(sql2);
- setTitle("插入两条数据成功");
- } catch (SQLException e) {
- setTitle("插入两条数据失败");
- }
- }
- /*
- * 删除其中的一条数据
- */
- private void deleteItem() {
- try {
- SQLiteDatabase db = mOpenHelper.getWritableDatabase();
- db.delete(TABLE_NAME, " title = 'haiyang'", null);
- setTitle("删除title为haiyang的一条记录");
- } catch (SQLException e) {
- }
- }
- /*
- * 在屏幕的title区域显示当前数据表当中的数据的条数。
- */
- private void showItems() {
- SQLiteDatabase db = mOpenHelper.getReadableDatabase();
- String col[] = { TITLE, BODY };
- Cursor cur = db.query(TABLE_NAME, col, null, null, null, null, null);
- Integer num = cur.getCount();
- setTitle(Integer.toString(num) + " 条记录");
- }
- }
ContentValues
利用ContentValues来代替原来SQL语句进行数据库的操作。ContentValues存储值都只能是基本类型。
SimpleCursorAdapter
SimpleCursorAdapter类和ListView配合进行ListView的显示。
封装SQLiteDatabase,让访问数据更加方便和安全。
重点方法介绍:renderListView()
- package com.eoeAndroid.SQLite;
- import android.app.ListActivity;
- import android.content.Intent;
- import android.database.Cursor;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.ListView;
- import android.widget.SimpleCursorAdapter;
- /**
- * @author jinyan
- *
- */
- public class ActivityMain extends ListActivity {
- private static final int ACTIVITY_CREATE = 0;
- private static final int ACTIVITY_EDIT = 1;
- private static final int INSERT_ID = Menu.FIRST;
- private static final int DELETE_ID = Menu.FIRST + 1;
- private DiaryDbAdapter mDbHelper;
- private Cursor mDiaryCursor;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.diary_list);
- mDbHelper = new DiaryDbAdapter(this);
- mDbHelper.open();
- renderListView();
- }
- private void renderListView() {
- mDiaryCursor = mDbHelper.getAllNotes();
- startManagingCursor(mDiaryCursor);
- String[] from = new String[] { DiaryDbAdapter.KEY_TITLE,
- DiaryDbAdapter.KEY_CREATED };
- int[] to = new int[] { R.id.text1, R.id.created };
- SimpleCursorAdapter notes = new SimpleCursorAdapter(this,
- R.layout.diary_row, mDiaryCursor, from, to);
- setListAdapter(notes);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- super.onCreateOptionsMenu(menu);
- menu.add(0, INSERT_ID, 0, R.string.menu_insert);
- menu.add(0, DELETE_ID, 0, R.string.menu_delete);
- return true;
- }
- @Override
- public boolean onMenuItemSelected(int featureId, MenuItem item) {
- switch (item.getItemId()) {
- case INSERT_ID:
- createDiary();
- return true;
- case DELETE_ID:
- mDbHelper.deleteDiary(getListView().getSelectedItemId());
- renderListView();
- return true;
- }
- return super.onMenuItemSelected(featureId, item);
- }
- private void createDiary() {
- Intent i = new Intent(this, ActivityDiaryEdit.class);
- startActivityForResult(i, ACTIVITY_CREATE);
- }
- @Override
- // 需要对position和id进行一个很好的区分
- // position指的是点击的这个ViewItem在当前ListView中的位置
- // 每一个和ViewItem绑定的数据,肯定都有一个id,通过这个id可以找到那条数据。
- protected void onListItemClick(ListView l, View v, int position, long id) {
- super.onListItemClick(l, v, position, id);
- Cursor c = mDiaryCursor;
- c.moveToPosition(position);
- Intent i = new Intent(this, ActivityDiaryEdit.class);
- i.putExtra(DiaryDbAdapter.KEY_ROWID, id);
- i.putExtra(DiaryDbAdapter.KEY_TITLE, c.getString(c
- .getColumnIndexOrThrow(DiaryDbAdapter.KEY_TITLE)));
- i.putExtra(DiaryDbAdapter.KEY_BODY, c.getString(c
- .getColumnIndexOrThrow(DiaryDbAdapter.KEY_BODY)));
- startActivityForResult(i, ACTIVITY_EDIT);
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode,
- Intent intent) {
- super.onActivityResult(requestCode, resultCode, intent);
- renderListView();
- }
- }
- ————————————————————————————————————————————————————————————————————————
- package com.eoeAndroid.SQLite;
- import java.util.Calendar;
- import java.util.Date;
- import android.content.ContentValues;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.SQLException;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- import android.util.Log;
- public class DiaryDbAdapter {
- public static final String KEY_TITLE = "title";
- public static final String KEY_BODY = "body";
- public static final String KEY_ROWID = "_id";
- public static final String KEY_CREATED = "created";
- private static final String TAG = "DiaryDbAdapter";
- private DatabaseHelper mDbHelper;
- private SQLiteDatabase mDb;
- private static final String DATABASE_CREATE = "create table diary (_id integer primary key autoincrement, "
- + "title text not null, body text not null, created text not null);";
- private static final String DATABASE_NAME = "database";
- private static final String DATABASE_TABLE = "diary";
- private static final int DATABASE_VERSION = 1;
- private final Context mCtx;
- private static class DatabaseHelper extends SQLiteOpenHelper {
- DatabaseHelper(Context context) {
- super(context, DATABASE_NAME, null, DATABASE_VERSION);
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- db.execSQL(DATABASE_CREATE);
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- db.execSQL("DROP TABLE IF EXISTS diary");
- onCreate(db);
- }
- }
- public DiaryDbAdapter(Context ctx) {
- this.mCtx = ctx;
- }
- public DiaryDbAdapter open() throws SQLException {
- mDbHelper = new DatabaseHelper(mCtx);
- mDb = mDbHelper.getWritableDatabase();
- return this;
- }
- public void closeclose() {
- mDbHelper.close();
- }
- public long createDiary(String title, String body) {
- ContentValues initialValues = new ContentValues();
- initialValues.put(KEY_TITLE, title);
- initialValues.put(KEY_BODY, body);
- Calendar calendar = Calendar.getInstance();
- String created = calendar.get(Calendar.YEAR) + "年"
- + calendar.get(Calendar.MONTH) + "月"
- + calendar.get(Calendar.DAY_OF_MONTH) + "日"
- + calendar.get(Calendar.HOUR_OF_DAY) + "时"
- + calendar.get(Calendar.MINUTE) + "分";
- initialValues.put(KEY_CREATED, created);
- return mDb.insert(DATABASE_TABLE, null, initialValues);
- }
- public boolean deleteDiary(long rowId) {
- return mDb.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
- }
- public Cursor getAllNotes() {
- return mDb.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_TITLE,
- KEY_BODY, KEY_CREATED }, null, null, null, null, null);
- }
- public Cursor getDiary(long rowId) throws SQLException {
- Cursor mCursor =
- mDb.query(true, DATABASE_TABLE, new String[] { KEY_ROWID, KEY_TITLE,
- KEY_BODY, KEY_CREATED }, KEY_ROWID + "=" + rowId, null, null,
- null, null, null);
- if (mCursor != null) {
- mCursor.moveToFirst();
- }
- return mCursor;
- }
- public boolean updateDiary(long rowId, String title, String body) {
- ContentValues args = new ContentValues();
- args.put(KEY_TITLE, title);
- args.put(KEY_BODY, body);
- Calendar calendar = Calendar.getInstance();
- String created = calendar.get(Calendar.YEAR) + "年"
- + calendar.get(Calendar.MONTH) + "月"
- + calendar.get(Calendar.DAY_OF_MONTH) + "日"
- + calendar.get(Calendar.HOUR_OF_DAY) + "时"
- + calendar.get(Calendar.MINUTE) + "分";
- args.put(KEY_CREATED, created);
- return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
- }
- }
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
- int y = 0;
- public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
- LayoutInflater factory = LayoutInflater.from(myListView.this);
- final View textEntryView = factory.inflate(R.layout.paopao_alert_dialog, null);
- Object obj = getSystemService(Context.WINDOW_SERVICE);
- WindowManager wm = (WindowManager) obj;
- int envWidth = wm.getDefaultDisplay().getWidth();
- int envHeight = wm.getDefaultDisplay().getHeight();
- if(pw == null)
- {
- pw = new PopupWindow(textEntryView);
- pw.showAtLocation(v, Gravity.LEFT,0,0);
- }else if(!pw.isShowing()){
- pw = new PopupWindow(textEntryView);
- pw.showAtLocation(v, Gravity.LEFT,0,0);
- }
- int pwH = 70;
- int pwW = 166;
- y = -envHeight/2+v.getTop() + pwH;
- pw.update(0,y,pwW,pwH);
- textEntryView.findViewById(R.id.phone).setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- // TODO Auto-generated method stub
- pw.dismiss();
- }
- });
-
//创建弹出窗口:指定View、大小、背景透明,及其它属性 - popupWindow = new PopupWindow(board, width, height);
- popupWindow.setBackgroundDrawable(null);
- popupWindow.setOutsideTouchable(false);
- popupWindow.setClippingEnabled(false);
- http://news.wangmeng.cn/detailNews/2372
- http://www.eoeandroid.com/thread-23314-1-1.html
- http://www.eoeandroid.com/viewthread.php?tid=23314&highlight=popupwindow
- http://www.eoeandroid.com/viewthread.php?tid=10850&highlight=popup%2Bwindow
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 display架构分析
2011-11-08 14:43 2602Android display架构分析 高通7系列硬件架 ... -
android usb流程(转载加整理)
2011-11-08 14:42 3136android usb流程(转载加整理) ... -
C++友元friend --c++利用friend修饰符,可以让一些你设定的函数能够对这些保护数据进行操作
2011-09-08 16:36 966<!-- [if gte mso 9]><x ... -
Jni函数调用大全
2011-09-08 16:34 9784Jni函数调用 ... -
android linux 基础知识总结
2011-09-08 16:23 2849android linux 基础知识总结 ===== ... -
pthread_create用法 c线程
2011-09-08 09:34 3637今天开始学习linux下用C开发多线程程序,Linux系统下的 ... -
C++多线程入门(一)
2011-09-05 14:32 1243第1节 背景 为了更好的理解多线程的概念,先对进程,线程 ... -
C++中的虚函数(virtual function)多态
2011-09-05 13:41 9301.简介 虚函数是 ... -
添加一个系统服务sytem service
2011-09-02 15:51 2507方法一: 1.在应用中 com.xxx.spi.SPLLi ... -
android.mk文件
2011-09-02 13:51 1250<!-- [if gte mso 9]><x ... -
android 中使用socket使native和framework通信
2011-09-01 10:14 1203android 中使用socket使native和frame ... -
让你自己写的Android的Launcher成为系统中第一个启动的,也是唯一的Launcher
2011-09-01 09:49 908[转]让你自己写的Android的Launcher成为系统中第 ... -
No implementation found for native Landroid/
2011-08-31 17:30 2423No implementation ... -
Java 线程中的Join、wait、notify,sleep【转】
2011-05-30 09:37 1089Java 线程中的Join、wait、notify ... -
android回调函数总结
2011-02-14 13:26 4385回调函数就是那些自己写的,但是不是自己来调,而是给别人来掉的函 ... -
IPC框架分析 Binder,Service,Service manager
2011-01-22 13:10 1317IPC框架分析 Binder,Servic ... -
Android中几种图像特效处理的小技巧,比如圆角,倒影,还有就是图片缩放,Drawable转化为Bitmap,Bitmap转化为Drawable等等
2011-01-22 11:41 2212Android中几种图像特效处理的小技巧,比如圆角,倒影,还有 ... -
Android中SurfaceView的使用示例
2011-01-19 20:54 880SurfaceView在游戏开发中有着举足轻重的地位,它对于画 ... -
Android 的 SurfaceView 双缓冲应用
2011-01-19 20:46 1803双缓冲是为了防止动画闪烁而实现的一种多线程应用,基于Surfa ... -
Android Content Provider[转]
2010-10-21 14:42 1190Android应用程序可以使用 ...
相关推荐
Android应用源码45套安卓源码合集: android中文离线发音引擎FOCTTS使用源码.rar Android应用源码(精)LBS签到应用源码.rar Android应用源码(精)xUtils2.2.5.rar Android应用源码(精)仿博客园客户端源码.rar Android...
Android应用源码13套安卓源码合集: android应用源码仿ireader书架.rar android应用源码动画效果 translate、scale、alpha、rotate 切换Activity动画.rar android应用源码可以报警的手电.rar android应用源码图片...
Android应用源码10套安卓源码合集: android应用源码DroidBrowser浏览器.rar android应用源码QQ_UI之分类菜单.rar android应用源码QQ的登录界面.rar android应用源码Socket的客户端通信.rar android应用源码tooxin图...
Android应用源码11套安卓源码合集: Android Gps日志记录程序源码.rar Android listview 滑动删除(具体效果360手机卫士后台通知).rar Android MP3播放器,带卡拉OK字幕.rar Android “遇见”android应用源码.rar ...
Android应用源码30套安卓源码合集: andriod闹钟源代码.rar Android Gps日志记录程序源码.rar Android MP3播放器,带卡拉OK字幕.rar Android 个人记账程序源码.rar Android 仿Mac的Dock.rar Android 口袋微博服务器...
本视频教程“004集-android的应用领域”针对初学者,将全面解析Android系统的广泛应用。 首先,Android在智能手机市场占据主导地位,它的应用商店Google Play拥有海量的应用程序,涵盖社交、娱乐、教育、生活服务等...
android用户界面设计精髓 android应用程序设计精髓 对外发布你的android应用程序和附录6个部分 附录还包含了android开发常用工具 模拟器 ddms和eclipse 的使用指南 《Android移动应用开发 第3版 卷Ⅱ:提高篇》...
Android应用程序概述 Android操作系统是目前全球最流行的移动设备操作系统之一,尤其在智能手机和平板电脑市场占据了主导地位。Android系统以其开放源代码、丰富的定制性和强大的开发者社区为特点,吸引了无数用户...
Android应用源码安卓源码(172个合集),可以做为你的学习参考。 365MobileSecretary v1.0.6(365手机助手AIDL) 888个经典 Logo.rar AdXmpp(Openfire+asmack+spark) .zip AidlDemo(简单aidl的例子) aidl跨进程调用....
"Android应用案例开发大全(源码)"提供了一套完整的案例集,旨在帮助开发者深入理解Android平台上的应用程序设计和实现。这些案例覆盖了从基础功能到高级特性的各种应用场景,通过分析和实践这些源码,你可以了解到...
5. **Android SDK**:Google SDK是Android应用开发的核心工具集,包含API库、开发工具和其他资源。了解如何安装、配置和使用SDK是开始开发的首要步骤。 6. **AndroidManifest.xml**:这是每个Android应用的关键文件...
总的来说,Android应用管理器是一个集多种技术于一体的工具,它涉及到Android系统的多个核心组件和服务,如PackageManager、ActivityManager和Intent机制。通过理解和掌握这些知识,开发者不仅能创建出高效且用户...
Android应用架构设计是移动开发领域中的一个重要话题,它关乎到应用程序的可维护性、可扩展性和团队协作效率。良好的架构设计能够使代码更加模块化,降低耦合度,便于后期的迭代和升级。以下是一些关于Android应用...
Android应用的开发通常基于Android SDK(软件开发工具包),它是进行Android应用开发必不可少的工具集。它包含了库文件、API以及可以运行Android应用的模拟器。使用Android SDK,开发者可以创建新的工程,并通过底层...
《Android应用开发》主要介绍如何使用Android提供的强大工具集开发Android应用。全书对Android操作系统做了全面的介绍,首先讲解了安装、配置Android SDK和Eclipse IDE安装环境,接着从使用构建块来创建直观、漂亮的...
一套完整的Android图标集可以帮助开发者创建出界面美观、一致性良好的应用。本文将深入探讨Android常用图标集及其重要性,以及如何有效地使用这些图标。 首先,我们来理解Android图标的基本类型。在Android系统中,...
"大话企业级Android应用开发实战完整源代码"这个资料集很可能包含了实现这些目标的关键技术和实践案例。 1. **数据安全**:在企业应用中,数据安全是至关重要的。这可能涉及到加密技术的使用,如SSL/TLS协议用于...
3. **安装Android SDK**:Android SDK是Android应用开发的必备工具集,包含了编译、调试、测试等所需的工具。文档虽未详述,但通常需要从Google官方网站下载SDK并进行安装。 4. **安装集成开发环境IDE**:文档中...
7个经典Android应用程序实例源代码.rar Android 培训--18个单项功能实例源码.rar Android 小项目开发示例大全--20个通用具体应用程序实例源码.rar Android 文件下载功能Java多线程下载功能的例子实例源码.rar ...
【Android应用开发基础习题集】 Android应用开发是构建移动应用程序的过程,主要针对谷歌的Android操作系统。本习题集旨在帮助初学者掌握Android应用开发的基础知识,包括环境搭建、编程语法、应用程序结构以及控件...