Android Feature(scheme实现网页打开App)小知识点等

来源:互联网 发布:国内数据库分布 编辑:程序博客网 时间:2024/05/16 11:43

> 网页通过scheme打开另外一个App Android,如果app没有安装,则打开网页?
Android中通过scheme实现网页打开App(deep-link)- http://blog.csdn.net/u010940300/article/details/51426874
Android 通过网页打开自己的APP(scheme)- http://blog.csdn.net/qduningning/article/details/37602101
Android 使用Scheme实现从网页启动APP- http://www.jianshu.com/p/1cd02fe1810f
Android 通过网页打开自己的APP(scheme)- http://blog.csdn.net/qduningning/article/details/37602101

android 从微信分享的网页中启动APP- http://blog.csdn.net/mattdong0106/article/details/50780898
Android应用如何跳转到应用市场详情页面- http://www.jianshu.com/p/2165acb5d1eb
怎么在网页或其他应用中打开你的app- http://blog.csdn.net/lovelyelfpop/article/details/54974152
Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据- http://blog.csdn.net/jiangwei0910410003/article/details/23940445


StrictMode使用详解- http://blog.csdn.net/eclipsexys/article/details/44160227

> APK从安装到启动

APK从安装到启动的过程-- http://www.kancloud.cn/digest/androidframeworks/127788
apk从打包到安装到启动-- http://blog.csdn.net/u011486491/article/details/54135512
Android app从安装到启动的过程-- http://blog.csdn.net/u014142287/article/details/52396983

> 为什么要用AsyncTask?
  我们写App都有一个原则,主线程不能够运行需要占用大量CPU时间片的任务,如大量复杂的浮点运算,较大的磁盘IO操作,网络socket等,这些都会导致我们的主线程对用户的响应变得迟钝,甚至ANR,这些会使应用的用户体验变差,但是有时又的确需要执行这些耗时的任务,那么我们通常可以使用AsyncTask或者new Thread
来处理,这样把任务放入工作线程中执行,不会占用主线程的时间片,所以主线程会及时响应用户的操作,如果使用new Thread来执行任务,那么如果需要中途取消任务执行或者需要返回任务执行结果,就需要我们自己维护很多额外的代码,而AsyncTask是基于concurrent架包提供的并发类实现的,上面的二个需求都已经帮我们封装了,这也是我们选择AsyncTask的原因。
  AsyncTask
Android的AsyncTask比Handler更轻量级一些,适用于简单的异步处理。
首先明确Android之所以有Handler和AsyncTask,都是为了不阻塞主线程(UI线程),且UI的更新只能在主线程中完成,因此异步处理是不可避免的。

> LinkedHashMap  HashMap
HashMap实现由数组和链表的形式
LinkedHashMap是Hash表和链表的实现,并且依靠着双向链表保证了迭代顺序是插入的顺序。
  HashMap的数据结构基于数组和链表。用数组存储HashMapEntry元素,当调用put方法去存储数据时,对key调用hashCode()并可能再做进一步加工,得到一个hash值,通过hash值可以找到bucket的位置,如果bucket位置已经有其他元素了(即hash值相同),那么就通过链表结构把hash相同的元素放到链表的下一个节点;当调用get方法去获取数据时,找到bucket以后,会通过key的equals方法在链表中找到目标元素。这里需要注意hashCode()和equals()方法的区别,它们均需保证计算得到的值在插入HashMap后不会发生改变;并需尽可能保证两个不同元素的hashCode方法返回值不同,这样碰撞的几率会小,从而提高HashMap的性能;
  当HashMap中已经填充了超过3/4的bucket时,会发生rehash,即会创建原来大小两倍的bucket数组,并将原来的元素放入新的bucket数组中。这里的3/4指的是装填因子(load factor),用户可以自行指定,默认是0.75。增大装填因子可以减少 Hash表(Entry 数组)所占用的内存空间,但会增加查询数据的时间开销,而查询是最频繁的的操作(HashMap 的 get() 与 put() 方法都要用到查询);减小装填因子会提高数据查询的性能,但会增加 Hash 表所占用的内存空间。
  HashMap底层是通过链表来解决hash冲突的,拿到key的hashcode,求出hash码,根据hash码找到索引的位置,然后去数组中获取对应索引的元素,如果key的hash相同,key相同的话,那么这就是我们要找的entry,把entry的值返回出去就Ok了。

> 页面置换算法:ImageLoad中使用了LinkedList ?
 LRU(least recently uses最近最少使用)是一种页面置换算法,最近最少使用的被替换掉。LRU算法是以时间轴为依据进行替换,而不是使用频率为依据替换。 
 LFU(least frequently used 最不经常使用)是以单位时间内使用频率为依据进行替换,使用频率低的被替换掉。 
 FIFO(first in fist out 先进先出)按顺序进行替换。

> OnTouchEvent事件中 down事件 和up事件的传递 android
事件传递之一(基本概念)- http://blog.csdn.net/kechanghe0705/article/details/44087617
0 0