当前位置: 首页 > news >正文

积分网站建设潮阳建设局网站

积分网站建设,潮阳建设局网站,凡科网干嘛的,深圳网站搜索文章目录 深入分析 Android Activity (十)1. Activity 的资源管理1.1 使用资源 ID 访问资源1.2 Drawable 资源1.3 使用 TypedArray 管理资源1.4 使用资源配置 2. Activity 的数据存储2.1 SharedPreferences2.2 文件存储2.3 SQLite 数据库2.4 ContentProvider 3. Activity 的性能… 文章目录 深入分析 Android Activity (十)1. Activity 的资源管理1.1 使用资源 ID 访问资源1.2 Drawable 资源1.3 使用 TypedArray 管理资源1.4 使用资源配置 2. Activity 的数据存储2.1 SharedPreferences2.2 文件存储2.3 SQLite 数据库2.4 ContentProvider 3. Activity 的性能优化3.1 避免主线程阻塞3.2 优化布局3.3 内存优化3.4 性能监测工具 总结 深入分析 Android Activity (十) 1. Activity 的资源管理 在 Android 中资源管理是开发中不可忽视的一部分。合理地管理资源如布局、字符串、图像等可以显著提升应用的性能和可维护性。 1.1 使用资源 ID 访问资源 可以通过资源 ID 来访问资源文件如字符串、颜色、尺寸等。 // Accessing string resources String myString getResources().getString(R.string.my_string);// Accessing color resources int myColor getResources().getColor(R.color.my_color);// Accessing dimension resources float myDimension getResources().getDimension(R.dimen.my_dimension);1.2 Drawable 资源 Drawable 资源用于定义应用中的图形元素。可以在 XML 文件中使用不同类型的 Drawable如 shape、selector、layer-list 等。 !-- res/drawable/rounded_corners.xml -- shape xmlns:androidhttp://schemas.android.com/apk/res/androidcorners android:radius8dp/solid android:color#FF0000/ /shape// Setting drawable resource to a view ImageView imageView findViewById(R.id.my_image_view); imageView.setImageResource(R.drawable.rounded_corners);1.3 使用 TypedArray 管理资源 TypedArray 用于访问一组类型相同的资源如在自定义 View 中定义属性。 !-- res/values/attrs.xml -- declare-styleable nameMyCustomViewattr namecustomText formatstring/attr namecustomColor formatcolor/ /declare-styleable// Accessing custom attributes in a custom view TypedArray a context.obtainStyledAttributes(attrs, R.styleable.MyCustomView); String customText a.getString(R.styleable.MyCustomView_customText); int customColor a.getColor(R.styleable.MyCustomView_customColor, Color.BLACK); a.recycle();1.4 使用资源配置 可以根据不同的设备配置提供不同的资源文件如不同语言、屏幕尺寸、屏幕密度等。 !-- res/values-en/strings.xml -- resourcesstring nameapp_nameMyApp/string /resources!-- res/values-zh/strings.xml -- resourcesstring nameapp_name我的应用/string /resources!-- res/values-sw600dp/strings.xml -- resourcesstring nameapp_nameMyApp for Tablets/string /resources2. Activity 的数据存储 在 Android 中可以通过多种方式存储数据如 SharedPreferences、文件存储、SQLite 数据库、ContentProvider 等。 2.1 SharedPreferences SharedPreferences 用于存储简单的键值对数据。 // Saving data to SharedPreferences SharedPreferences sharedPreferences getSharedPreferences(MyPrefs, MODE_PRIVATE); SharedPreferences.Editor editor sharedPreferences.edit(); editor.putString(key, value); editor.apply();// Retrieving data from SharedPreferences String value sharedPreferences.getString(key, default_value);2.2 文件存储 可以在内部或外部存储中存储文件。 // Saving a file to internal storage String filename myfile.txt; String fileContents Hello, World!; FileOutputStream fos openFileOutput(filename, Context.MODE_PRIVATE); fos.write(fileContents.getBytes()); fos.close();// Reading a file from internal storage FileInputStream fis openFileInput(filename); InputStreamReader isr new InputStreamReader(fis); BufferedReader bufferedReader new BufferedReader(isr); StringBuilder stringBuilder new StringBuilder(); String line; while ((line bufferedReader.readLine()) ! null) {stringBuilder.append(line); } String fileContents stringBuilder.toString();2.3 SQLite 数据库 SQLite 数据库用于存储结构化数据。 // Defining a SQLiteOpenHelper class public class MyDatabaseHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME mydatabase.db;private static final int DATABASE_VERSION 1;public MyDatabaseHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL(CREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT));}Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {db.execSQL(DROP TABLE IF EXISTS mytable);onCreate(db);} }// Using the database MyDatabaseHelper dbHelper new MyDatabaseHelper(this); SQLiteDatabase db dbHelper.getWritableDatabase(); ContentValues values new ContentValues(); values.put(name, John Doe); long newRowId db.insert(mytable, null, values);2.4 ContentProvider ContentProvider 用于在应用间共享数据。 // Querying data from a ContentProvider Uri uri Uri.parse(content://com.example.myprovider/mytable); Cursor cursor getContentResolver().query(uri, null, null, null, null); if (cursor ! null) {while (cursor.moveToNext()) {String name cursor.getString(cursor.getColumnIndex(name));}cursor.close(); }3. Activity 的性能优化 性能优化是确保应用流畅运行的重要步骤。可以通过以下方法进行性能优化 3.1 避免主线程阻塞 在主线程中进行耗时操作会导致应用卡顿。可以使用 AsyncTask、HandlerThread、IntentService 等在后台线程执行耗时操作。 // Using AsyncTask to perform background operations private class MyAsyncTask extends AsyncTaskVoid, Void, String {Overrideprotected String doInBackground(Void... voids) {// Perform background operationreturn Result;}Overrideprotected void onPostExecute(String result) {// Update UI with result} }new MyAsyncTask().execute();3.2 优化布局 复杂的布局会影响性能。可以使用 Hierarchy Viewer 工具分析和优化布局。 !-- Using ConstraintLayout to optimize layout -- ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentTextViewandroid:idid/textViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textHello, World!app:layout_constraintTop_toTopOfparentapp:layout_constraintStart_toStartOfparent/ /ConstraintLayout3.3 内存优化 内存优化可以防止内存泄漏和应用崩溃。 // Using LruCache for caching images LruCacheString, Bitmap memoryCache new LruCacheString, Bitmap(cacheSize) {Overrideprotected int sizeOf(String key, Bitmap bitmap) {return bitmap.getByteCount() / 1024;} };public void addBitmapToMemoryCache(String key, Bitmap bitmap) {if (getBitmapFromMemCache(key) null) {memoryCache.put(key, bitmap);} }public Bitmap getBitmapFromMemCache(String key) {return memoryCache.get(key); }3.4 性能监测工具 可以使用 Android Profiler、Systrace、GPU Profiler 等工具监测和分析性能。 // Enabling StrictMode to detect performance issues StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().build());总结 通过对 Android Activity 的深入理解和灵活应用可以实现丰富的用户体验和高效的应用程序。理解其生命周期、权限管理、数据传递、动画效果、导航和返回栈管理、资源管理、配置变更处理、视图层次结构、性能优化、内存管理、测试、Service 交互、BroadcastReceiver 交互、深度链接、任务返回栈管理、资源管理、数据存储和性能优化等方面的知识有助于开发出性能优异且用户友好的应用程序。不断学习和实践这些知识可以提升应用程序的质量和用户满意度。 继续深入探讨 Android 的其他部分包括系统服务、组件通信、高级动画、性能调优等将进一步提升应用开发能力和水平。 欢迎点赞|关注|收藏|评论您的肯定是我创作的动力
http://www.yingshimen.cn/news/91885/

相关文章:

  • o2o电商网站建设网站外部优化
  • 网站开发建设协议医疗器械研发
  • 做的比较早的海淘网站小微宝安网站建设
  • 福州网站制作设计wordpress 投票网站
  • 菜谱网站后台代码wordpress 简单 免费主题下载
  • 阿里云建站论坛网站详情页怎么做
  • 网站设计与建设公司芜湖网站 建设
  • app设计的基本流程杭州百家号优化
  • 网站底部备案代码网站背景尺寸
  • 网站建设郑州公司芷江建设工程招投标网站
  • 库车建设工程信息网站云南建管微信小程序
  • 建设网站费用做影视网站怎么赚钱
  • 做网站用什么服务器会比较好唐山哪里建地铁
  • 南阳seo网站价格上海建筑建材业信息网
  • 显示危险网站怎么解决wordpress新手技巧
  • 做淘客的网站都有哪几个网站建设一般要多少费用
  • 扬州市网站建设工作室策划营销方案
  • 网站建设网站形象网页设计的目的与要求
  • 用微信怎么做企业网站网站链接交易
  • 如何自己做网站卖东西推荐 网页游戏
  • 网站开发专业都有哪些课程网页制作师培训
  • wap企业网站wordpress没有描述
  • 政务公开网站建设方案如何做好集团网站建设
  • 国内产品网站1688路由下做网站映射
  • 建设网站培训班八年级学生做的简易网站
  • 网站落地页如何做c 语言可以做网站吗
  • 丽水做网站公司江西省都昌县建设局网站
  • 在线网站创做简历做本地化的返利网站怎么样
  • 萧山网站建设xsszwl上海建筑网站建设
  • 青岛网站优化公司哪家好博客营销案例