zoukankan      html  css  js  c++  java
  • android 学习中的一些问题记录 主要是概念问题

    一些问题记录

    应用程序 res 目录常见的目录有哪些,分别放置什么类型的资源?

    animator/ 和anim/ 放的都是定义动画的XML文件,两个地方的动画类型不同。
    color/ XML文件:定义了不同状态下的view item显示的不同的颜色
    drawable/ 不同分辨率有不同的文件夹 如drawable-hdpi 放置图片资源,各个文件夹下放置适用于各种分辨率的图。
    layout/ 用户界面布局文件
    menu/ 定义菜单
    raw/ 任意的文件,此处文件直接添加至程序,然后使用Resources.openRawResource()调用
    values/ 定义一些值:

    arrays.xml 定义数组
    colors.xml 定义不同颜色
    dimens.xml 定义尺寸值
    strings.xml 定义字符串
    styles.xml 定义样式

    xml/ 别的.XML文件

    2) 举例说明系统查找资源的过程

    根据res里面的所有内容会自动生成一个R.java 文件,给所有资源编号了,根据R文件就可以找到资源

    代码中:

    比如需要找一个图片,使用R.drawable.zhuyuanxuan即得到其引用。

    在xml中,

    通过@drawable/zhuyuanxuan即可

    3) Content Provider 中用到的 URI 是什么,和 URL 有什么差异?

    URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。
    而URL是uniform resource locator,统一资源定位器,

    URI一般由三部分组成:

    1. 访问资源的命名机制。
    2. 存放资源的主机名。
    3. 资源自身的名称,由路径表示。

    具体说到android中content provider的uri给其提供的数据建立了唯一的标识符。
    比如 content://com.tplink.training.provider/staff
    content:// 就是访问资源的命名机制 就是协议声明
    com.tplink.training.provider 是authority 权限
    /staff 是路径
    这个就给staff这张表提供了唯一的标识符。

    同时还可以使用相对uri,即相对地址标识资源。
    相对的URI不是以scheme(后面跟着冒号)开始的URI。
    比如说: articles/articles.html

    总的来说:

    在Java的URI中,一个URI实例可以代表绝对的,也可以是相对的,只要它符合URI的语法规则。而URL类则不仅符合语义,还包含了定位该资源的信息,因此它不能是相对的,schema必须被指定。
    URL是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。
    所以URL是RUI命名机制的一个子集。

    4) Manifest 文件的作用是什么?

    声明该工程的Java包名,
    声明应用程序的组件:activities, services, broadcast receivers, and content providers.声明了组件实现的类,以及组件的功能,比如发送intent等。这是最主要的功能。
    同时决定了哪个进程来使用组件
    声明该程序需要用到的权限
    以及Android API的版本等等



    进程,线程问题

    1)阻塞UI线程的后果是什么?如何避免?

    后果就是产生ANR:应用的界面卡住,无法响应用户的操作,无法刷新或绘制界面。另外还会影响到广播的处理。
    避免的方式就是所有的耗时操作都要开线程,在子线程里面进行操作。

    2) 如何安全的刷新 UI?常用的 API 包括哪些?

    刷新UI的方法:

    • 使用handler
      在子线程中使用Handler的sendMessage()方法,在UI线程中用Handler的handleMessage判断接受到的信息,进行相应的操作。
    • AsyncTask利用线程任务异步更新UI界面
      这个和handler 的机制差不多 doInBackground里面的内容就是在子线程里面跑的。
    • 利用Activity.runOnUiThread(Runnable)把更新ui的代码创建在Runnable中
    • 还有其他:
      View.post(Runnable)
      View.postDelayed(Runnable, long
  • 相关阅读:
    谈谈我对服务熔断、服务降级的理解
    PS-AXI-GPIO-流水灯设计
    立创EDA的使用
    multisim的操作回顾
    verilog的文件流和项目流
    AXI4的主从机的收发机制
    AXI4协议的物理模型
    verilog中的数据类型
    matlab的基本操作
    ARM之AXI总线协议初试
  • 原文地址:https://www.cnblogs.com/psklf/p/4778718.html
Copyright © 2011-2022 走看看