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

网站的验证码怎么做软文网站模板

网站的验证码怎么做,软文网站模板,企业官网图片,苏州网站小程序app开发公司文章目录 深入分析 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 SharedPreferences
      • 2.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:android="http://schemas.android.com/apk/res/android"><corners android:radius="8dp"/><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 name="MyCustomView"><attr name="customText" format="string"/><attr name="customColor" format="color"/>
</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 -->
<resources><string name="app_name">MyApp</string>
</resources><!-- res/values-zh/strings.xml -->
<resources><string name="app_name">我的应用</string>
</resources><!-- res/values-sw600dp/strings.xml -->
<resources><string name="app_name">MyApp for Tablets</string>
</resources>

2. 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 AsyncTask<Void, 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:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello, World!"app:layout_constraintTop_toTopOf="parent"app:layout_constraintStart_toStartOf="parent"/>
</ConstraintLayout>

3.3 内存优化

内存优化可以防止内存泄漏和应用崩溃。

// Using LruCache for caching images
LruCache<String, Bitmap> memoryCache = new LruCache<String, 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.hengruixuexiao.com/news/32509.html

相关文章:

  • dw做购物网站自动化测试培训机构哪个好
  • 政府网站集约化建设项目最大的中文搜索引擎
  • 晋州网站建设网站推广方法
  • 公司网站建设目标北京seo外包 靠谱
  • 有哪些做普洱茶网站的seo如何去做优化
  • wordpress高速优化seo最新快速排名
  • 成都平台网站开发公司seo优化教程自学
  • 网站开发 保密期限个人网页免费域名注册入口
  • 梧州高端网站建设服务百度信息流广告怎么投放
  • 中山做网站公司seo课程培训课程
  • wordpress qq相册seo关键词有哪些类型
  • 帮忙建设公司网站杭州seo排名优化
  • 黄岛做网站的公司太原seo顾问
  • 营销型网站多少钱营销引流都有什么方法
  • 三亚建设网站百度扫一扫入口
  • wordpress 被挂马安徽seo网络优化师
  • 微信公众号是在哪个网站做的数据分析师就业前景
  • 游标卡尺 东莞网站建设搜索引擎营销的内容
  • java做网站的主要技术百度seo网站优化服务
  • 福州网站建设服务平台深圳网络推广公司排名
  • 厦门做网站多抖音seo培训
  • 《两学一做 榜样》网站百度风云榜游戏排行榜
  • 推荐网站在线看兄弟们上海优化价格
  • 网站建设所需的硬软件网络营销的10个特点
  • 网站弹出信息怎么做的个人网站模板建站
  • 乐清网站制作的公司成人电脑培训班办公软件
  • 建设标准 免费下载网站创意设计
  • 网站主机购买百度网
  • 网站网页设计方案百度公司招聘条件
  • 网站开发看掉一些功能贵州快速整站优化