一些问题记录

应用程序 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

android 学习中的一些问题记录 主要是概念问题的更多相关文章

  1. #0 scrapy爬虫学习中遇到的坑记录

    python 基础学习中对于scrapy的使用遇到了一些问题. 首先进行的是对Amazon.cn的检索结果页进行爬取,很顺利,无碍. 下一个目标是对baidu的搜索结果进行爬取 1,反爬虫 1.1 我 ...

  2. android学习中遇到的错误

    1.运行项目的时候报错: [2013-12-16 17:59:22 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowExcept ...

  3. Android学习中出现的问题

    •问题1:多行文字如何实现跑马灯效果? 博客链接:Androidd Studio 之多行文字跑马灯特效 解决状态:已解决 •问题2:cause: unable to find valid certif ...

  4. Android学习中R文件中途消失

    新建工程的时候R文件明明是在的,结果等我做着做着,R.java不见了????于是我就上网查了查,发现,诶,大家都说的几种常见情况都试过了,1.对工程clean一下,选project->clean ...

  5. Antd-react-mobile项目学习中遇到的问题记录(持续更新)

    1.Error:The "injectBabelPlugin" helper has been deprecated as of v2.0. You can use customi ...

  6. Android学习总结(一)——Activity的基本概念与Activity的生命周期

    一.Activity的基本概念 Activity是Android的四大组件之一,它是一种可以包含用户界面的组件,主要用于和用户进行交互,比如打电话,照相,发送邮件,或者显示一个地图!Activity用 ...

  7. 深度学习中目标检测Object Detection的基础概念及常用方法

    目录 关键术语 方法 two stage one stage 共同存在问题 多尺度 平移不变性 样本不均衡 各个步骤可能出现的问题 输入: 网络: 输出: 参考资料 What is detection ...

  8. 【转】Android学习基础自定义Checkbox组件

    原文网址:http://forum.maiziedu.com/thread-515-1-1.html heckbox组件是一种可同时选中多项的基础控件,即复选框,在android学习中,Checkbo ...

  9. 卷积在深度学习中的作用(转自http://timdettmers.com/2015/03/26/convolution-deep-learning/)

    卷积可能是现在深入学习中最重要的概念.卷积网络和卷积网络将深度学习推向了几乎所有机器学习任务的最前沿.但是,卷积如此强大呢?它是如何工作的?在这篇博客文章中,我将解释卷积并将其与其他概念联系起来,以帮 ...

随机推荐

  1. Objective-C 对象(内容根据iOS编程编写)

    开发iOS程序需要使用 Objective-C 语言和Cocoa Touch框架.Objective-C 源于 C 语言,是 C 语言的扩展. Cocoa Touch框架是一个Objective-C类 ...

  2. C#判断字符串是否是数字

    /// <summary> /// 判断字符串是否是数字 /// </summary> public static bool IsNumber(string s) { if ( ...

  3. C#+ArcEngine10.0+SP5实现鼠标移动动态显示要素属性信息

    为了解决鼠标移过动态显示要素属性的问题,我在网上先是查到的只能显示单个要素的属性,就是直接在arcmap中设置好的那个tips就可以显示,但是这种显示效果只是简单的实现了显示要素的属性值,可是没有对该 ...

  4. 领域驱动设计常见问题FAQ

    本文出处:http://www.cqrs.nu/Faq What is a domain? The field for which a system is built. Airport managem ...

  5. [Cordova] Plugin里使用iOS Framework

    [Cordova] Plugin里使用iOS Framework 前言 开发Cordova Plugin的时候,在Native Code里使用第三方Library,除了可以加速项目的时程.也避免了重复 ...

  6. jquery实现多级下拉菜单

    支持多种浏览器,体验效果:http://keleyi.com/keleyi/phtml/jqmenu/4.htm 多级菜单,理论上支持无限多的层级,文件结构非常简单的,以下是完整代码: <!DO ...

  7. javascript随笔20160808

    var jsondata=$.parseJSON(@ViewBag.x); //转换为Json数据 var fruits = ["Banana", "Orange&quo ...

  8. js中Unicode转义序列

    将某一中文字符转义,可采取在线工具进行转义,http://tool.chinaz.com/tools/unicode.aspx "哈哈" ==="\u54c8\u54c8 ...

  9. iOS 苹果开发证书失效的解决方案(Failed to locate or generate matching signing assets)

    从2月14日开始,上传程序的同学可能会遇到提示上传失败的提示. 并且打开自己的钥匙串,发现所有的证书全部都显示此证书签发者无效. 出现以下情况: Failed to locate or generat ...

  10. 学习笔记 ACCESS 延迟注入

    通过执行很多命令延长执行时间判断返回是否有SQL注入. 例如: login.asp?id and (SELECT count(*) FROM MSysAccessObjects AS T1, MSys ...