如何正确编写Android 代码
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章将为大家详细讲解有关如何正确编写Android 代码,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。当系统启动完成时,会编写Android 代码
千家信息网最后更新 2026年11月04日如何正确编写Android 代码
这篇文章将为大家详细讲解有关如何正确编写Android 代码,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
当系统启动完成时,会编写Android 代码为android.intent.action.BOOT_COMPLETED.我们可以编写一个BroadcastReceiver 接收这个广播就可以了。
在编写Android 代码中,对于数据的存贮,有几种方式,有文件方式,有文件式数据库方式,Android自带了一个SQLite数据库,做嵌入开发的人对这个跨平台的本地文件数据库一定不会陌生,在Android对于数据的访问,提出了新的方式,ContentProvider方式,类似于MS的ContentProvider方式的,OLEDB,及ODBC统一的数据方式。
public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } public DatabaseHelper(Context ct,String dbName) { super(ct,dbName,null,1); } public boolean insert(String insert) { this.getWritableDatabase().execSQL(insert); return true; } public boolean update(String update) { this.getWritableDatabase().execSQL(update); return true; } public boolean delete(String del) { this.getWritableDatabase().execSQL(del); return true; } public Cursor query(String query) { Cursor cur = this.getReadableDatabase().rawQuery(query, null); return cur; } } 再创建一个使用者(消费者) package test.DB; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; public class DBActivity extends Activity { private SQLiteDatabase mdb = null; private DatabaseHelper helper = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initDatabase(); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub super.onCreateOptionsMenu(menu); menu.add(1, Menu.FIRST +1, 1, "GetName"); menu.add(1, Menu.FIRST +2, 2, "Test"); return true; } public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub super.onOptionsItemSelected(item); switch (item.getItemId()) { case Menu.FIRST+ 1: { TextView tv = (TextView)this.findViewById(R.id.view_main); tv.setText(this.getName()); break; } case Menu.FIRST + 2: { this.setTitle("Del Item..."); break; } } return true; } private void initDatabase() { helper = new DatabaseHelper(this,"dbfile"); //mdb = this.openOrCreateDatabase("dbfile", 0, null); //String sql_create = "create table test (id int, name TEXT)"; //mdb.execSQL(sql_create); String sql_insert = "insert into test(id, name) values(55, 'namexx')"; //mdb.execSQL(sql_insert); helper.insert(sql_insert); } private String getName() { String name = null; //mdb = helper.getReadableDatabase(); Cursor cur = helper.query("select * from test"); cur.moveToFirst(); do { namename = name + cur.getString(1)+ "\n"; } while(cur.moveToNext()); return name; } } 这些代码读起来是不是有点Visual Basic的感觉?呵呵,所以,以后说不定.net,Android,java,blackberry,最终都成为一致的API,当然,这只是我们的期望,这样大家不必整天花这么多时间学这些无聊的接口了。 好了,该我们的ContentProvider出场了,与Service,BroadcastReceiver等组件一样,继承特定的Interface,在AndroidManifest.xml里声明这个ContentProvider,调用者就可以拿来使用了。 首先我们定义一个ContentProvider: package test.DB; import android.content.ContentProvider; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.widget.Toast; public class TestProvider extends ContentProvider { private DatabaseHelper mdbHelper = null; final static String TABLE_NAME = "test"; @Override public int delete(Uri arg0, String arg1, String[] arg2) { mdbHelper.getWritableDatabase().delete(TABLE_NAME, arg1, arg2); return 0; } @Override public String getType(Uri uri) { // TODO Auto-generated method stub return null; } @Override public Uri insert(Uri uri, ContentValues values) { // TODO Auto-generated method stub mdbHelper.getWritableDatabase().insert(TABLE_NAME, "", values); return null; } @Override public boolean onCreate() { // TODO Auto-generated method stub mdbHelper = new DatabaseHelper(this.getContext(), "dbfile"); return true; } @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { Cursor cur = mdbHelper.getReadableDatabase().query(TABLE_NAME,projection,selection,null,null,null, null); Toast.makeText(this.getContext(), "test Cur!", Toast.LENGTH_SHORT); return cur; } @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { mdbHelper.getWritableDatabase().update(TABLE_NAME, values, selection, null); return 0; } } 老规矩,AndroidManifest.xml来定义这个Provider 这里的android:authorities = "com.my.provider"是标识这个ContentProvider,调用者可以根据这个标识来找到它, 我们组合一个能找到它的Uri, public class ProviderConst { public static final Uri MY_TEST_URI = Uri.parse("content://com.my.provider/test"); } content 指的是内容提供者ContentProvider。 //com.my.provider映射到我们已定义的那个ContentProvider标识 /test这个作为一个参数,传给ContentProvider,可以根据这个参数来决定操作目标,比如数据库中的哪张表,文件中的那一部分数据等。 我们来操作这个内容提供者: private String getName() { String name = null; Cursor cur = this.getContentResolver().query(ProviderConst.MY_TEST_URI,new String[]{"id","name"},null, null, null); if (cur == null) return null; cur.moveToFirst(); do { namename = name + cur.getString(1)+ "\n"; } while(cur.moveToNext()); return name; } 我们也可以这样使用: private String getName() { String name = null; Cursor cur = this.managedQuery(ProviderConst.MY_TEST_URI,new String[]{"id","name"},null, null, null); if (cur == null) return null; cur.moveToFirst(); do { namename = name + cur.getString(1)+ "\n"; } while(cur.moveToNext()); return name; }编写Android 代码读起来是不是有点Visual Basic的感觉?呵呵,所以,以后说不定.net,Android,java,blackberry,最终都成为一致的API,当然,这只是我们的期望,这样大家不必整天花这么多时间学这些无聊的接口了。
关于如何正确编写Android 代码就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
数据
方式
代码
内容
数据库
文件
标识
一致
无聊
说不定
参数
只是
天花
感觉
接口
提供者
文章
时间
更多
用者
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技活动banner
智能科技公司是互联网公司吗
朗新科技与工业互联网
致聘互联网科技
互联网科技logo设计
互联网科技大会
中国互联网金融科技基金
科技赋能互联网健康
中国互联网有什么科技含量
互联网时代科技改变生活
乌鲁木齐新华智原互联网科技学校
科技互联网的核心竞争力
上海京穆互联网科技有限公司
黑科技 体验场景 互联网大会
小米互联网科技园入驻
深圳无忧互联网科技
工业互联网科技成果转化
陕西九四连强互联网科技有限公司
艺电能源互联网科技有限公司招聘
武汉亿视互联网科技有限公司
科技互联网龙头
凡科互联网科技
朗涯互联网科技
互联网 视角下的科技创新
长亮科技 互联网金融
互联网和高科技公司
浙江互联网科技研学营
保险科技服务互联网营销体系
万物互联网智能科技
北京天晋互联网科技有限公司