`
啸笑天
  • 浏览: 3462366 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

Android 积累

阅读更多

 

创建手机模拟器时:

屏幕分辨率

HVGA:320×480

QVGA:240x320

WQVGA400:240X400

WQVAG432:240X432

WVGA800: 480X800

WVGA854: 480X854

 WebView,WebViewClient,WebChromeClient的关系

在WebView的设计中,不是什么事都要WebView类干的,有些杂事是分给其他人的,这样WebView专心干好自己的解析、渲染工作就行了。WebViewClient就是帮助WebView处理各种通知、请求事件的,具体来说包括:

  onLoadResource

  onPageStart

  onPageFinish

  onReceiveError

  onReceivedHttpAuthRequest

 

WebChromeClient是辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等

  onCloseWindow(关闭WebView)

  onCreateWindow()

  onJsAlert (WebView上alert是弹不出来东西的,需要定制你的WebChromeClient处理弹出)

  onJsPrompt

  onJsConfirm

  onProgressChanged

  onReceivedIcon

  onReceivedTitle

 

 

安装Android应用

<!-- 安装程序权限 -->
    <uses-permission android:name="android.permission.INSTALL_PACKAGES"/>

代码:

 private EditText filenameText;//在sd卡中的路径
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button button=(Button)this.findViewById(R.id.button);
        filenameText=(EditText) this.findViewById(R.id.filename);
        button.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
     Intent intent = new Intent();
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//标志,代表我要启动一个新的任务
     //action=android.content.Intent.ACTION_VIEW
     //category=android.intent.category.DEFAULT
     //data:type=application/vnd.android.package-archive
     intent.setAction(android.content.Intent.ACTION_VIEW);
     Uri data=Uri.fromFile(new File(Environment.getExternalStorageDirectory(),filenameText.getText().toString()));
     intent.setDataAndType(data,"application/vnd.android.package-archive");
     startActivity(intent); 
    }else {
     Toast.makeText(InstallActivity.this,"SD卡不存在",Toast.LENGTH_LONG).show();
    }
   }
  });
    }

startManagingCursor(Cursor cursor)这个方法告诉活动应该根据该活动的生命周期来管理光标的生命周期。例如,当活动被暂停时,它将自动停用光标,然后在活动重启时重新查询该光标。当活动终止时,所有托管的光标也将关闭。

 stopManagingCursor(Cursor cursor)这个是停止根据该活动的生命周期来管理光标的生命周期。

在Android安全模式中,一个应用程序编写的文件无法被其他任何应用程序所读写。每个程序都有自己的Linux用户ID和数据目录(/data/data/包名),以及其受保护的内存空间。Android程序可通过下面两种方式进行彼此间的通信:

方式一  IPC(Inter-Process Communication,进程间通信):一个进程使用AIDL(Android Inteerface Definition Language,接口定义语言)和IBinder接口声明一个任意的API。调用该API时,将在进程间安全且有效地对参数进行编组。这个技术用于对后台Service线程进行远程过程调用。

方式二  ContentProvider:进程在系统中将它们本身注册为某些数据类型的提供者。详细见:http://justsee.iteye.com/blog/936612

 

 @Override

   public Cursor query(Uri uri, String[] projection,

         String selection, String[] selectionArgs, String orderBy) {

      if (uriMatcher.match(uri) == EVENTS_ID) {

         long id = Long.parseLong(uri.getPathSegments().get(1));

         selection = appendRowId(selection, id);

      }

 

      // Get the database and run the query

      SQLiteDatabase db = events.getReadableDatabase();

      Cursor cursor = db.query(TABLE_NAME, projection, selection,

            selectionArgs, null, null, orderBy);

      // Tell the cursor what uri to watch, so it knows when its source data changes

      cursor.setNotificationUri(getContext().getContentResolver(), uri);

      return cursor;

   }

 

这里要注意,这个观察者模式是从sdk level 1就有的,也就是说,cursor可以接收通知来感知content provider数据变化,但是不能做到异步刷新界面。这次1.6Loader机制通过官方支持实现了这个功能。

 

 private String appendRowId(String selection, long id) {
      return _ID + "=" + id
            + (!TextUtils.isEmpty(selection)
                  ? " AND (" + selection + ')'
                  : "");
   }		

组件(Service,Activity,BoardcastReceiver,ContentProvider)运行在应用程序进程的主线程中,所以组件不会阻塞其他组件和用户界面。

一旦需要通过这4种组件完成请求,Android会首先确认该组件所在的进程是否运行,如果没有运行,Android将启动进程,同时确认被请求组件的实例是否存在,否则将创建一个新的组件实例。

findViewById(int id)原理:

View android.app.Activity.findViewById(int id),其中的id必须是之前已经设置为当前Activity主界面的XML布局文件中某个标签的id,否则findViewById会因为找不到View对象而返回null。

例如:

setContentView(R.layout.main);

fromSpinner = (Spinner) findViewById(R.id.from_language);

 

当需要引用其他XML布局文件中的View的时候,首先要根据XML的布局文件的设置构造View对象,然后View android.view.View.findViewById(int id)

例如:

LinearLayout mainLayout=(LinearLayout)getLayoutflater().inflate(R.layout.main , null);

TextView tv=(TextView)mainLayout.findViewById(R.id.textview1);

tv.setText(R.string.hello);

setContentView(mainLayout);

 

 

 

 

分享到:
评论

相关推荐

    Android开发技术的搜集积累

    ### Android开发技术要点详解 #### 一、Android操作系统概述 Android是一种基于Linux内核的开源移动操作系统,由Google公司及开放手机联盟共同开发维护。它主要用于智能手机和平板电脑等移动设备,同时也逐步扩展...

    工作积累(11)-android功耗分析

    这篇"工作积累(11)-android功耗分析"可能是博主分享的一次关于Android设备能耗优化的经验总结。虽然描述中没有具体信息,但我们可以根据标题和标签推测其可能涉及的内容。 1. **功耗分析工具**: 在Android开发中...

    Android, Android 开发中积累和总结。.zip

    这份压缩包文件"Android, Android 开发中积累和总结。.zip"很可能包含了开发者在实践过程中积累的代码示例、教程、最佳实践以及问题解决方案。其中的"Android-master"可能是一个GitHub项目的主分支名,暗示了这是一...

    android开发ui积累.pdf

    在Android开发中,UI设计是至关重要的一环,它直接影响到应用程序的用户体验。`RelativeLayout`是Android布局系统中的一种,以其灵活性和强大的功能被广泛使用。本文将深入探讨`RelativeLayout`的一些经典用法,帮助...

    Android驱动开发与移植实战详解_android驱动_android驱动_android_

    在Android系统中,驱动程序是操作系统与...通过实际项目经验积累,开发者可以掌握驱动的开发、移植和优化技巧,提升Android系统的性能和稳定性。在实践中,不断学习和探索,是成为一名优秀的Android驱动开发者的关键。

    android各种UI特效 工作中积累

    本资源“工作中积累UI特效”显然是一个开发者在实际工作过程中积累的Android UI设计与实现技巧的集合。下面,我们将详细探讨这些关键知识点。 1. **自定义View和动画** Android系统提供了丰富的内置控件,但有时候...

    Android十年终极开发经验_助您不走弯路_快速晋级Android架构师

    *Android 开发积累的重要经验 *Android 开发知识体系 *Android 开发方向 Flutter/Kotlin经验总结 *可维护可扩展 Android 开发攻略 *性能稳定 Android 开发攻略 ** 行业标准: 作者有数年Android开发经验. *...

    android开发ui积累.doc

    android开发ui积累.doc

    android 小知识积累

    ### Android ListView与Adapter的优化技巧 在Android应用开发过程中,`ListView`是一种非常常见的组件,用于显示一系列数据项。然而,在处理大量数据时,如何优化`ListView`及其绑定的`Adapter`就显得尤为重要。 #...

    Android小项目集合100多个

    在Android开发领域,小项目是积累经验、提升技能的有效途径。"Android小项目集合100多个"这个资源包提供了一系列的学习和实践材料,旨在帮助开发者深入理解和掌握Android应用程序的开发技巧。以下将针对Android开发...

    Android实训报告基于Android游戏开发.docx

    通过实训,学生能够巩固理论知识,提高对实际生活的认知,积累实践经验,培养独立思考和团队协作能力。 实训的主要任务包括: 1. 认识Android开发基础,理解其操作系统、用户界面和应用程序的构成。 2. 学习和掌握...

    androidの多种风格listview不同案例积累使用

    本教程将深入探讨“androidの多种风格listview不同案例积累使用”,旨在帮助开发者掌握ListView的各种使用技巧和样式设计,提升用户体验。 首先,我们要理解ListView的基本结构。ListView由多个ListView项...

    Android 系统 8.1源码

    - 需要定期清理编译环境,避免积累过多的中间文件。 #### 五、源码分析与开发 对于开发者而言,获取Android 8.1的源码意味着可以获得对底层实现的深入理解。通过阅读和分析源码,开发者可以: 1. **学习核心组件...

    android例子,android初学教程

    随着经验的积累,可以进一步探索更复杂的功能,如网络通信、数据库操作、多媒体处理、动画效果等,从而提升自己的编程技能。记得在实践中不断查阅官方文档,参加在线课程,参考其他优秀应用的源码,以加速学习进程。

    Android-19源码

    Android-19源码分析与探索 Android操作系统是基于Linux内核的开源移动设备平台,其源码提供了深入了解系统运行机制的机会。...源码学习不仅是理论知识的积累,也是实践经验的积累,对于提升个人技术能力具有重要意义。

    Android特效——数字滚动条

    在Android开发中,为了增强应用的用户体验和视觉吸引力,开发者经常需要实现各种特效。...通过实践这个项目,你不仅能掌握这些技能,还能提高解决复杂问题的能力,为今后的Android开发积累宝贵经验。

    Android studio各地天气查询

    【Android Studio 地方天气查询】项目详解 ...随着经验的积累,你可以进一步扩展功能,比如添加更多天气指标、动画效果、多城市管理等,提升用户体验。记住,持续学习和实践是成为优秀Android开发者的关键。

    Android课程设计报告.docx

    在完成此项目后,学生会深刻理解Android开发流程,提高问题解决能力,增强团队协作和项目管理意识,同时也对Android的UI设计、网络编程、数据存储等方面有深入认识,为后续的Android开发工作积累了宝贵经验。

    Android开发从零开始——Android开发环境搭建

    通过阅读文档、参与开源项目、编写自己的小应用,不断积累经验和提升技能。 以上就是史上最详细的Android开发环境搭建教程,涵盖了从安装JDK到编写第一个Android应用的所有步骤。希望这个指南能帮助你成功踏入...

Global site tag (gtag.js) - Google Analytics