零碎的知识点

计算机网络


http/1.1协议的8种请求方式

head、post、get、put、delete、connect、option、trace

请求状态码responseCode含义:

  • 1xx:请求继续;
  • 2xx:请求正常处理,如200请求正常;
  • 3xx:请求完成,需要进一步处理,重定向;如302;
  • 4xx:请求出错,如404访问的浏览器找不到;
  • 5xx:服务器内部错误,如500服务器遇到了未预料到的错误。

java


java修饰符作用范围

java修饰符

android


viewpager+fragment配合使用的生命周期

  ViewPager加载时同时加载上一个、当前、下一个三个item。即会调用onAttach--onCreate--onCreateView--onViewCreated--onActivityCreated--onStart--onResume生命周期,而其他的fragment若被初始化过了,则会调用onPause--onStop--onDestoryView。
  ViewPager中的Fragment生命周期总是相邻的三个item同时进行的。因此,如果想在fragment显示的时候加载网络数据(懒加载),通过生命周期来做文章是很难实现的,推荐重写setUserVisibleHint()。

懒加载

  什么叫懒加载呢,简单来说就是你需要的时候才去加载它,这样提高了运行速度。

安卓中的懒加载

  在android的项目开发过程中viewPager的使用很频繁;但是viewPager特殊的预加载机制导致viewPager的网络请求会有异常;即当前页面加载过程中,不可见的预加载Fragment页面也会走网络请求,这样会极大的影响到安卓app的运行效率。
1:setUserVisibleHint(boolean isVisibleToUser)的方法就很重要,根据方法名来看当前页面是否可见, 里面的boolean值就是判断当前页面是否可见的变量,所以大家可以isVisibleToUser来判断当前页面的状态,isVisibleToUser =true的时候代表当前页面可见,false 就是不可见,所以大家可以参考一下这个状态,根据这个状态来处理懒加载。
2:提醒:setUserVisibleHint(boolean isVisibleToUser) 实在Fragment OnCreateView()方法之前调用的。

LruCache的使用

LruCache是Android 3.1所提供的一个缓存类,所以在Android中可以直接使用LruCache实现内存缓存。而DisLruCache目前在Android 还不是Android SDK的一部分,但Android官方文档推荐使用该算法来实现硬盘缓存。

  • 原理
    LruCache是个泛型类,主要算法原理是把最近使用的对象用强引用(即我们平常使用的对象引用方式)存储在 LinkedHashMap 中。当缓存满时,把最近最少使用的对象从内存中移除,并提供了get和put方法来完成缓存的获取和添加操作。(设置LruCache缓存的大小,一般为当前进程可用容量的1/8。)
    LruCache的核心思想很好理解,就是要维护一个缓存对象列表,其中对象列表的排列方式是按照访问顺序实现的,即一直没访问的对象,将放在队尾,即将被淘汰。而最近访问的对象将放在队头,最后被淘汰。

广播是否可以请求网络?

从4.0 开始所有的网络请求都需要在线程中,广播请求网络同理 开启线程在线程中请求网络

引起anr的时间限制是多少?

Activity----->5秒
BroadcastReceiver----->10秒
Service----->20秒

Android为什么引入Parcelable?

Java提供了Serializable接口方式实现序列化,但这种方式效率较低。因此,安卓提供Parcelable接口以实现更加高效的序列化方式。

进程间通信的方式?

1)Bundle
2)文件共享
3)AIDL
4)Messager
5)ContentProvider
6)Socket

关于startActivityForresult

  1. 作用:一个activity打开另一个activity获取数据后,新activity关闭
  2. 用法

MainActivity:
1)startActivityForResult(intent,int code),code用于标识哪个activity返回的数据;
2)重写onActivityResult(int requestCode,int resultCode,intent),requestCode就是上面那个code,resultCode用于判断回调的数据是否成功了。
NewActivity:
setResult(int resultCode),setResult(int resultCode, Intent),resultCode回调状态,就是上面的resultCode,Intent数据

  1. 失效:如果NewActivity的launchMode是singleInstance或singleTask,就不行。

Android中为什么主线程不会因为Looper.loop()里的死循环阻塞?

主线程确实是阻塞的,不阻塞那APP怎么能一直运行,所以说主线程阻塞是一个伪命题,只不过是没有弄明白既然阻塞了,为什么还能调用各种声明周期而已.
调用生命周期是因为有Looper,有MessageQueue,还有沟通的桥梁Handler,通过IPC机制调用Handler发送各种消息,保存到MessageQueue中,然后在主线程中的Looper提取了消息,并在主线程中调用Handler的方法去处理消息.最终完成各种声明周期.

Android 动画

  • 帧动画、补间动画,android3.0之后加了属性动画
  • 帧动画:一张张单独的图片连贯的进行播放。
    用法如下:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/a_0"
android:duration="100" />
<item
android:drawable="@drawable/a_1"
android:duration="100" />
<item
android:drawable="@drawable/a_2"
android:duration="100" />
</animation-list>

ImageView animationImg1 = (ImageView) findViewById(R.id.animation1);
        animationImg1.setImageResource(R.drawable.frame_anim1);
        AnimationDrawable animationDrawable1 = (AnimationDrawable) animationImg1.getDrawable();
        animationDrawable1.start();
  • 补间动画
    分为:alpha(淡入淡出),translate(位移),scale(缩放),rotate(旋转)
    一般会采用xml 文件的形式;代码会更容易书写和阅读,同时也更容易复用。用法如下:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@[package:]anim/interpolator_resource"
android:shareInterpolator=["true" | "false"] >
<alpha
android:fromAlpha="float"
android:toAlpha="float" />
<scale
android:fromXScale="float"
android:toXScale="float"
android:fromYScale="float"
android:toYScale="float"
android:pivotX="float"
android:pivotY="float" />
<translate
android:fromXDelta="float"
android:toXDelta="float"
android:fromYDelta="float"
android:toYDelta="float" />
<rotate
android:fromDegrees="float"
android:toDegrees="float"
android:pivotX="float"
android:pivotY="float" />
<set>
...
</set>
</set>
//单独的动画不需要set便签

Animation animation = AnimationUtils.loadAnimation(mContext, R.anim.alpha_anim);
img = (ImageView) findViewById(R.id.img);
img.startAnimation(animation);

  • 属性动画
    原理:改变对象view的属性值,比如你可以定义一个动画:指定要执行的对象属性,在屏幕的位置,持续时间以及它变化的属性值。

ArrayList与LinkedList区别(三点)

1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

牛客网


  • 在同一线程中肯定会调用一个 Loop.prepare() ,其中就生成一个 MessageQueue .而代码中可以 new 出多个 Handler 发送各自的 Message 到这个 MessageQueue 中,最后调用 msg.target.dispatch 中这个target来捕获自己发送的massge,所以明显是 N 个 Handler 对应一个 MessageQueue。
    {
    1. Handler 必须在 Looper.prepare() 之后才能创建使用
    2. Looper 与当前线程关联,并且管理着一个 MessageQueue
    3. Message 是实现 Parcelable接口的类
    4. 以一个线程为基准,他们的数量级关系是:Handler(N) : Looper(1) : MessageQueue(1) : Thread(1)。
    }
  • Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。
    -Android中正确构造一个对话框:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
 ProgressDialog dialog = new ProgressDialog(context);
  • activity的生命周期在onStart~onStop之间是可见状态的,当执行onResume后用户才可以与activity交互。当调用onStop而没有调用onDestory时,再次启动会调用onRestart,而如果只调用了onPause而没有调用onStop(比如当前是透明的activity或者是消息框什么的),则不会调用onRestart.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容