1.proguard混淆:对与Activity等不应进行混淆。否则系统将找不到生命周期函数;JSON字符串要考虑混淆之后是否会影响字段名;native方法也不混淆,否则调用不到

2.ListView的onItemLongClickListener返回true时将不会再调用onItemClick

3.善用单例模式

4.分享会上所得:重要与紧急哪个优先处理,答案是优先处理重要的事情。

处理事情的顺序应该是:重要又紧急,重要不紧急。紧急不重要。不紧急不重要。首先重要的事情一般都是正确的事情,而紧急去做的事情却不一定是正确的。其次重要有紧急的事情占的比例最小,不紧急不重要的事情最多,而假设我们选择先去处理紧急不重要的事情的话。那么之前重要不紧急的事情将会由于重要而变得紧急,那么我们就会陷入一个持续处理重要又紧急事件的循环中。这是一种很不利的工作状态。

5.使用番茄来进行自我计划与训练

6.project右键——Properties——Android。作为Library的项目要勾上is Library,要引入project库的点击add(我的Eclipse存在问题。可能是自身配置原因。无法使用绝对路径的project库。仅仅能使用相对路径,之后查证下)

7.Application层位于最底层,系统层位于最高层,Application无法屏蔽Home键,而Dialog层比Application层等级高,所以可用一个透明的Dialog来实现屏蔽

8.当有莫名其妙的错误:如不可能的类型转换异常,已导包却报错等。尝试对project进行clean也许能够解决

9.clampViewPositionVertical返回的是被拖动的子View的被拖动下一刻的位置,假设return 0 则拖动一下子View就会直接出如今最左側

10.Automatic Target Mode: Unable to detect device compatibility. Please select a target device. 当其它项目都能够执行。可是有项目报这个错误时候,右键propertites选择Android,选择你手机系统版本号。然后到清单文件里更改一下,再又一次安装

11.

————————————————————————————Android 4高级编程学习摘要————————————————————————————————————

1.SharedPreferences中的apply方法是在API 9之后引入的,调用它会安全地异步写入SP Editor。由于它是异步的,所以是保存SP的首选方法。假设想要确保操作成功,或者想支持早期的Android版本号,则能够调用commit方法。它会阻止调用线程,并在写入成功后返回true,在写入失败时返回false。

2.与标准UI布局不同,首选项定义在res/xml资源目录中

3.Android 3.0(API LEVEL 11)之前的Android平台不支持PreferenceHeader和Preference Fragment,在Preference Activity中直接加入PreferenceScreen

4.假设Activity被销毁。然后被又一次启动。以处理硬件配置改变(如屏幕方向改变)的情况,那么能够请求保留Fragment状态。

通过再Fragment的onCreate处理程序内调用setRetainInstance,就指定了当与Fragment关联的Activity被又一次创建时,Fragment的实例不应该被终止和又一次启动。因此,当设备的配置改变。而且与被保留Fragment关联的Activity被销毁和又一次创建时,被保留Fragment的onDestroy与onCreate处理程序不会被调用。

假设将大部分对象创建代码移入onCreate,同一时候使用onCreateView和已保存实例值中存储的值来更新UI。这能够显著提高效率

5.假设应用程序须要外部文件资源。那么能够通过将其放置在项目层次结构的res/raw目录中,从而在自己的分发包中包括它们。若要訪问,使用Resouce对象的openRawResouce方法,以便基于所指定的文件接收一个InputStream,传入文件名称(不带扩展名)作为R.raw类的变量名。

6.大型的、先前已存在的数据源(如字典)不适合(甚至不可能)转换到Android数据库中,此时,向资源层次结构加入原始文件是一种很好的解决方法。

7.假设应用程序须要缓存暂时文件,Android提供了一个可管理的内部缓存和(API 8開始)一个不能管理的外部缓存。分别调用getCacheDir和getExternalCacheDir方法能够从当前的上下文中訪问他们。

8.SQLite在列定义中使用了一种松散类型的方法。

即并不要求一列中的全部值都是同一类型。相反。在每一行中分别设置每一个值的类型。这样当从每一行的每一列中分配或者提取值时就不须要进行严格的类型检查了。

9.等到须要数据库时再创建和打开这些数据库是一种非常好的做法。SQLiteOpenHelper会在成功打开数据库实例后缓存它们,所以你能够再刚好要运行查询或事务前请求打开数据库,出于同样的原因。除非不再须要使用数据库否则无需关闭。

10.因为数据库操作须要较长的时间才干完毕。因此,为了确保这些操作不会影响用户体验。应该使全部数据库事务异步运行

11.假设磁盘空间不够或者没有足够的权限。对getWritableDatabase的调用可能失败,因此如有必要。在须要查询数据库时应该使用getReadableDatabase作为后备。在大多数情况下,它将提供与getWritableDatabase同样的、已缓存的可写数据库实例,除非该数据库实例还不存在。或者存在同样的权限或者磁盘空间问题,那么它将返回一个仅仅读的数据库实例副本。

12.在创建或者升级数据库之前,必须以可写形式打开数据库。因此一般来说,最好的做法是首先尝试打开可写数据库,假设不能成功打开,就再去尝试打开仅仅读数据库。


Android 学习历程摘要(三)的更多相关文章

  1. Android 学习历程摘要(二)

    1.资源文件命名仅仅能小写,否则会报错生成不了R.java文件 2.R文件导包时应该导入自己project的包,而不是android.R 3.数据库操作使用SqliteOpenHelper 4.val ...

  2. Android 学习历程摘要(一)

    初学Android,可能有些地方可能理解不正确,假设有朋友看到的话麻烦指正我一下,万分感谢. 1. 善用API DEMO,刚開始学习的人的需求基本在里面都能够满足,Eclipse导入API Demop ...

  3. 【转】 Pro Android学习笔记(三二):Menu(3):Context菜单

    目录(?)[-] 什么是Context menu 注册View带有Context menu 填Context菜单内容 Context菜单点击触发 什么是Context menu 在桌面电脑,我们都很熟 ...

  4. 【转】Pro Android学习笔记(三十):Menu(1):了解Menu

    目录(?)[-] 创建Menu MenuItem的属性itemId MenuItem的属性groupId MenuItem的属性orderId MenuItem的属性可选属性 Menu触发 onOpt ...

  5. 【转】Pro Android学习笔记(三):了解Android资源(上)

    在Android开发中,资源包括文件或者值,它们和执行应用捆绑,无需在源代码中写死,因此我们可以改变或替换他们,而无需对应用重新编译. 了解资源构成 参考阅读Android学习笔记(三八):资源res ...

  6. Android学习记录(三)——安装SQLite

    这次学习安装SQLite. 一.SQLite简介 重要特性:零配置,即不需要复杂的配置即可使用 详细:https://www.runoob.com/sqlite/sqlite-intro.html 二 ...

  7. Android学习笔记(三) UI布局

    每一个布局都有其适合的方式,另外,这几个布局元素可以相互嵌套应用,做出美观的界面. 一.线性布局(LinearLayout) 线性布局,这个东西,从外框上可以理解为一个div,他首先是一个一个从上往下 ...

  8. Android学习笔记(三)——初探Intent

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! Intent 是 Android 程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作 ...

  9. Android学习笔记——Menu(三)

    知识点 今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习. Popup Menu(弹出式菜单) 弹出式菜单是一种固定在View上的菜单模型.主要用于以下三种情况: 为特定的内容提 ...

随机推荐

  1. 小白的python之路 序

    计算机专科毕业,.net开发已有8年有余,中途断断续续,似懂非懂,积累了一些经验知识,但是不求甚解,属于那种一瓶不满半瓶子晃荡,这么一个状态. 主要从事web开发,涉及一些前端jq等,还有接口开发,搜 ...

  2. Java开发笔记(九十二)文件通道的基本用法

    前面介绍的各色流式IO在功能方面着实强大,处理文件的时候该具备的操作应有尽有,可流式IO在性能方面不尽如人意,它的设计原理使得实际运行效率偏低,为此从Java4开始增加了NIO技术,通过全新的架构体系 ...

  3. Jmeter接口测试---JDBC简单实践

    我的环境:MySQL:mysql-5.6.24-win32 jdbc驱动:mysql-connector-java-5.1.22-bin.jar JMeter:apache-jmeter-2.13 1 ...

  4. Verification Mind Games---how to think like a verifier像验证工程师一样思考

    1. 有效的验证需要验证工程师使用不同于设计者的思维方式思考问题.具体来说,验证更加关心在严格遵循协议的基础上发现设计里面的bug,搜索corner cases,对设计的不一致要保持零容忍的态度. m ...

  5. windows系统下的redis启动教程

    下载解压后配置redis.conf文件配置端口号和密码,打开poweshell命令,进入redis解压目录,使用.\redis-server.exe redis.conf 命令启动redis服务,再打 ...

  6. 场景分割:MIT Scene Parsing 与DilatedNet 扩展卷积网络

    MIT Scene Parsing Benchmark简介 Scene parsing is to segment and parse an image into different image re ...

  7. vue-element-admin使用常见问题

    一.vue-element-admin添加快捷导航 这个组件是基于vue-i18n因此,首先在项目中安装i18n npm install --save vue-i18n 然后main.js中引入 im ...

  8. CAD得到所有实体方法(网页版)

    主要用到函数说明: IMxDrawSelectionSet::AllSelect 得到当前空间的所有实体.详细说明如下: 参数 说明 [in,defaultvalue(NULL)] IMxDrawRe ...

  9. 梦想CAD控件安卓参数绘图

    在CAD绘图中,参数化绘图可以帮助我们极大缩短设计时间,用户可以按照设计意图控制绘图对象,这样即使对象发生了变化,具体的关系和测量数据仍将保持不变,能够对几何图形和标注进行控制,可以帮助用户应对耗时的 ...

  10. CSS 命名规范 BEM 思想

    Part.1 何为 BEM? BEM :Block ( 块 ) 丶Element ( 元素 ) 丶Modifier ( 修饰符 ) 出 处:是由 Yandex 团队提出的一种前端命名方法论 优 点:命 ...