大神博客(必看)http://blog.csdn.net/huachao1001/article/list/1

 

1、Android校招笔记

http://huachao1001.github.io/index.html?c=2

2Android 使用 Socket 对大文件进行加密传输

http://www.codeceo.com/article/android-socket-encrypted-transmission.html

RandomAccessFile

只有RandomAccessFile才有seek搜寻方法,而这个方法也只适用于文件。

http://blog.csdn.net/akon_vm/article/details/7429245

3Android开发VR实战】二.播放360°全景视频

http://blog.csdn.net/linglongxin24/article/details/53924006

4《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目

http://www.jianshu.com/p/69a229fb6e1d

https://github.com/youlookwhat

5扫码下载app怎么做

https://www.zhihu.com/question/28001228

启动tomcat服务器apk文件放到目录下,得到可访问的地址,在草料二维码在线生成器中生成。

6二维码容错率

容错率也叫纠错率,就是指二维码可以被遮挡后仍能被正常扫描,而这个能被遮挡的最大面积就是容错率。

基本概念:最常见的QR二维码,用的是里德-所罗门码(RS)来做纠错。分有几级,纠错级别越高,整体需要携带的信息越多:L级可纠正约7%错误、M级别可纠正约15%错误、Q级别可纠正约25%错误、H级别可纠正约30%错误。RS码原理比较复杂,整体基于任意k个确定点可表示一个阶数至少为k-1的多项式,实际上发送超过k个点,就算中间有一些错误,也能通过数学原理反推出最初的多项式,从而获得信息。并不是所有位置都可以缺损,像最明显的那三个角上的方框,直接影响初始定位。中间零散的部分是内容编码,可以容忍缺损。

由于调整纠错率的时候,二维码的图案分布也要重新调整,所以每次调整纠错率,二维码的图案都会发生变化。

http://cli.im/news/21072

矢量图形与分辨率无关,可以将它缩放到任意大小和以任意分辨率在输出设备上打印出来,都不会影响清晰度,而位图是由一个一个像素点产生,当放大图像时,像素点也放大了,但每个像素点表示的颜色是单一的,所以在位图放大后就会出现咱们平时所见到的马赛克状。

7、Android SDK开发

http://blog.csdn.net/gaiyindexingqiu/article/details/54602990

8、跨平台APP的ionic开发

http://coding.imooc.com/wap/classindex?cid=51

http://blog.csdn.net/gaiyindexingqiu/article/details/71079173

9、React Native开发App

http://coding.imooc.com/wap/classindex?cid=69

10、HTML5/CSS3联系表单 提交按钮有发光动画

 http://www.html5tricks.com/html5-css3-flat-form.html

11、巧用第三方快速开发Android App

http://coding.imooc.com/wap/classindex?cid=81

12、Android API 指南

https://zhuanlan.zhihu.com/p/25068519

13、Android自定义控件之自定义组合控件

http://www.cnblogs.com/whoislcj/p/5714760.html

14、5个最佳的Android测试框架2看)

http://www.codeceo.com/article/5-android-test-framework.html

15、安卓源码服务专家,有上百个apk 源码(3看)

http://www.javaapk.com/

16、xUtils 中的HttpUtils全面注释

http://yangguangfu.iteye.com/blog/2213020

17、Java与JS互调并传递参数

http://blog.csdn.net/wangtingshuai/article/details/8631835

点击webview中的图片进行放大显示

http://blog.csdn.net/wangtingshuai/article/details/8635787

18、Integer.toBinaryString(n).toCharArray();

将一个无符号数转化成二进制表示并将其存入字符数组中。

19、Map、Queue、Stack的遍历

http://lavasoft.blog.51cto.com/62575/181781/

java.util.Iterator

1. public interface Iterator {  

2. boolean hasNext();  

3. Object next();  

4. void remove();  

5. }  

http://blog.csdn.net/chenssy/article/details/37521461

20、android软件安全与逆向分析》(7看)

http://vdisk.weibo.com/s/ulQg_Ma4K_F0D

21、Android Framework4看)

http://www.cnblogs.com/xueshui20/p/4244641.html

 

http://blog.csdn.net/rain_butterfly/article/details/48756797

http://blog.csdn.net/column/details/android-framework.html

22、android apk文件生成机制(5看)

android Apk打包过程概述_android是如何打包apk的

http://blog.csdn.net/jason0539/article/details/44917745

Android应用程序(APK)的编译打包过程

http://www.cnblogs.com/sjm19910902/p/6416022.html

Android应用程序资源的编译和打包过程分析

http://shyluo.blog.51cto.com/5725845/1229261/

如何分析Android程序之破解第一个程序

https://my.oschina.net/fhd/blog/364956

Android APK反编译

https://www.nowcoder.com/discuss/19462

23、dalvik字节码

Dalvik和Java字节码的对比

http://www.importnew.com/596.html

APKDalvik字节码和smali文件

http://www.cnblogs.com/ablansetaimeng/p/4386826.html

24、Android平台性能分析工具(7看)

Android性能分析工具整理汇总

https://sanwen8.cn/p/12btbtN.html

Android系统性能调优工具介绍

http://blog.csdn.net/innost/article/details/9008691/

http://www.cnblogs.com/myzh/archive/2013/03/17/2965225.html

Android App优化之性能分析工具

http://www.jianshu.com/p/da2a4bfcba68

TraceView  http://blog.jobbole.com/78995/

25、viewSurfaceViewGLSurfaceView的关系和区别

https://zhidao.baidu.com/question/553301393879682692.html

http://blog.csdn.net/qq_28058443/article/details/51997144

http://blog.csdn.net/pointerfree/article/details/6770806

SurfaceViewview的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比view快。更适合2D游戏的开发         GLSurfaceViewSurfaceView的子类,openGL专用。专用于3D游戏开发的视图

一般2D游戏开发使用SurfaceView足够,因为它也是google专们扩展用于2D游戏开发的画布。GLSurfaceViewAndroid3D游戏专用画布)的效率高于SurfaceView30倍;GLSurfaceView的效率主要是因为机器硬件的GPU加速,弊端在于适配能力差。

RemoteView是用来描述一个垮进程显示的view,会用在两个地方:一个是在AppWidget,另外一个是在Notification. 

SurfaceManager 显示系统管理库,负责把2D3D内容显示到屏幕;

 SurFace Manager:显示子系统的管理器
    LibWebCoreweb浏览器引擎,支持android浏览器
    SGLskia图形库,底层的2D图形引擎
   3D 库:OpenGL
   FreeType:字体显示 

26、当你的程序中某一个Activity A在运行时,主动或被动地运行另一个新的Activity B,这个时候A会执行onSaveInstanceState()B完成以后又会来找A,这个时候就有两种情况:一是A被回收,二是A没有被回收,被回收的A就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上了参数savedInstanceState;而没被收回的就直接执行onResume(),跳过onCreate()了。

27、ContentResolver ContentProvider是一对。一个运行在提供数据端(provider),一个运行在调用端(resolver)。使用的时候利用resolver来调用方法有query,insert,update,delete

28、Android 运行时由两部分组成: Android 核心库集和 Dalvik 虚拟机。其中核心库集提供了 Java 语言核心库所能使用的绝大部分功能,而虚拟机则负责运行 Android 应用程序。

每个 Android 应用程序都运行在单独的 Dalvik 虚拟机内(即每个 Android 应用程序对用一条 Dalvik 进程), Dalvik 专门针对同时高效地运行多个虚拟机进行优化,因此 Android 系统以方便的实现对应用程序进行隔离。

29、1.Handler 必须在 Looper.prepare()之后才能创建使用UI线程中Looper默认创建) 2.Looper与当前线程关联,并且管理着一个MessageQueue 3.Message是实现Parcelable接口的类4.以一个线程为基准,他们的数量级关系是:Handler(N) : Looper(1) : MessageQueue(1) : Thread(1)

30、UI线程阻塞时间超过5sANR,广播阻塞时间超过10sANR应用程序无响应)Activity中,Main线程消息队列中的消息在5秒内没有得到响应BroadcastReceiver中,onReceive()方法执行时间超过10Service中,onStartCommand()方法执行超过20

31、Android中使用IBinder进行IPC通讯时,能够传递哪些数据

ParcelableSerializableBundle

32、将一个Activity设置成窗口的样式,只需设置Theme

在安卓应用程序开发中,可以通过getMetrics获得屏幕的属性,从而取得屏幕的宽度和高度

33、子类A继承父类B, A a = new A();则父类B构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块 执行的先后顺序是父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B构造函数->子类A非静态代码块->子类A构造函数

34、Android34个常用adb shell命令

https://www.nowcoder.com/discuss/21205

Linux用户分为:拥有者、组群(Group)、其他(other

Linux文件权限一共10位长度,分成四段。分别为文件类型文件所有者的权限( rwx  是指拥有者具有可读可写可执行的权限)、文件所有者所在组的权限其他用户的权限

35、HashMap和ConcurrentHashMap的区别,HashMap的底层源码

http://www.bubuko.com/infodetail-1161252.html

36、怎么保证Service不被杀死?(Service保活)

提高service优先级,并未能提供成功的解决方案可以提高service的生命周期但并不能彻底解决被第三方杀死的问题http://blog.csdn.net/mad1989/article/details/22492519

http://blog.csdn.net/jiangwei0910410003/article/details/42177117

双进程守护http://blog.csdn.net/boyupeng/article/details/46974855

http://blog.csdn.net/ztemt_sw2/article/details/27101681

37、Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。

38、Asset目录与res目录的区别

http://blog.csdn.net/chun0801/article/details/51961274

39、十六进制转十进制

Integer.parseInt(String s, int radix);  //目的是输出一个十进制数其中radix是进制,可以是2(二进制),10(十进制),16(十六进制)等。

比如:Integer.parseInt(s, 16);将十六进制的字符串s转换成十进制。

http://blog.csdn.net/lvxiangan/article/details/50433035

16进制转二进制

http://blog.csdn.net/evangel_z/article/details/7527983

十进制转成十六进制   Integer.toHexString(int i)
十进制转成八进制    Integer.toOctalString(int i)
十进制转成二进制    Integer.toBinaryString(int i)
十六进制转成十进制  Integer.valueOf("FFFF",16).toString()
八进制转成十进制    Integer.valueOf("876",8).toString()
二进制转十进制      Integer.valueOf("0101",2).toString()

https://zhidao.baidu.com/question/13800579.html

39、Android开发之网络通讯详解

http://blog.csdn.net/dmk877/article/details/50893635

http与socket的区别:

HTTP:超文本传输协议,首先它是一个协议,并且是基于TCP/IP协议基础之上的应用层协议。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,HTTP是应用层协议,主要解决如何包装数据。HTTP协议详细规定了浏览器与服务器之间相互通信的规则,是万维网交换信息的基础。HTTP是基于请求-响应形式并且是短连接,并且是无状态的协议。针对其无状态特性,在实际应用中又需要有状态的形式,因此一般会通过session/cookie技术来解决此问题。

Socket:Socket不属于协议范畴,而是一个调用接口(API),Sock et是对TCP/IP协议的封装,通过调用Socket,才能使用TCP/IP协议。Socket连接是长连接,理论上客户端和服务器端一旦建立连接将不会主动断开此连接。Socket连接属于请求-响应形式,服务端可主动将消息推送给客户端。

http://blog.csdn.net/zeng622peng/article/details/5546384

40、程序员必备基础知识:通信协议——Http、TCP、UDP

http://www.cnblogs.com/xhwy/archive/2012/03/03/2378293.html

 

41、Android面试总结一

http://www.imooc.com/article/11965

42、SpringSpringMVC
http://www.imooc.com/article/1309

http://www.imooc.com/article/1392

43、Java反射

http://www.imooc.com/article/1518

44、数据库中求和用累加sum(),求行的个数用累计count()

45、Java把内存分成两种,一种叫做栈内存,一种叫做堆内存。

所有类的实例和数组都是在堆上分配内存的 数组是一种对象。对象存储在堆区。对象所占的堆内存是由自动内存管理系统回收堆内存由存活和死亡的对象,空闲碎片区组成。对象存储在堆内存,引用变量存储在栈内存。栈内存指向堆内存。

46异常的继承结构:基类为Throwable

Error Exception继承Throwable。RuntimeExceptionIOException等继承Exception

RuntimeException 一般是外部错误(不考虑Error的情况下),其必须被try{}catch语句块所捕获

Error 类体系描述了 Java运行系统中的内部错误以及资源耗尽的情形,Error不需要捕捉

非运行时异常 总是在我们写的时候就会出错提醒我们try catch  throw  

但是运行时异常检查不出来,只有运行时才会出错,所以也不需try catch

47系统类加载器(system class loader):它根据Java应用的类路径(CLASSPATH)来加载Java

扩展类加载器(extensions class loader):它用来加载Java的扩展库。

引导类加载器(bootstrap class loader):它用来加载Java的核心库,是用原生代码来实现的

tomcat 为每个 App 创建一个 Loader,里面保存着此WebAppClassLoader。需要加载WebApp下的类时,就取出ClassLoader来使用

48、getMeasuredWidth() getWidth()的区别

View的大小以width和height显示出来,事实上一个view拥有两对height和width值。

第一对被叫做measured widthmeasured height第二对被简单地称为widthheight

1、getMeasuredWidth方法获得的值在measure方法运行后就会确定。而getWidth方法的值是在layout方法运行后确定的。因此一般情况下在onLayout方法中使用getMeasuredWidth方法,而在除onLayout方法之外的地方用getWidth方法。

2、getMeasuredWidth它们定义了一个view在它的parent中显示为多大,获得 实际的尺寸getWidth在绘制时间以及布局之后定义view在屏幕上的实际尺寸。 这些值可能不必与measured height 和measured width不同。

49、java中Scanner类nextLine()和next()的区别和使用方法

next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。

nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。

int num = sc.nextInt()仅仅是把第一行的整数值读取了,在管道缓存中,还有换行符(enter),当在下面的nextLine()首先是读取第一行的换行符前面的数据,就是null。

http://blog.csdn.net/zhiyuan_ma/article/details/51592730

50通过JNI实现守护进程http://blog.csdn.net/yyh352091626/article/details/50542554

51、通过应用锁的实现原理,来进行账号的盗取

http://blog.csdn.net/jiangwei0910410003/article/details/42149975

52、面试题汇总(一)

http://blog.csdn.net/xiaole0313/article/details/62056612

53、Zygote启动过程

http://huachao1001.github.io/article.html?T3kWfUUW

54、HandlerThread

HandlerThread本质上就是一个普通Thread,只不过内部建立了Looper. Handler机制的分发中心就在Looper中的loop()HandlerThreadloop转到子线程中处理,降低了主线程的压力,使主界面更流畅

http://www.tuicool.com/articles/nai2Un

http://www.cnblogs.com/zhaoyanjun/p/6062880.html

55、AIDL

aidl Android Interface definition language的缩写,是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口aidl可以定义并实现进程通信ADIL就是两个不同的程序之间的一个桥梁,两个不同的程序通过绑定AIDL可以互相通讯。

A程序定义一个AIDL文件,eclipse会自动编译生成class文件,然后在A程序的service里面实现AIDL接口,并且实现AIDL的方法,方法就是你要做什么的,比如打电话的….然后在B项目里面绑定A项目的service,然后就可以调用A项目service里面的方法了。其实就是不同进程之间的方法调用。注意A,B个项目存放AIDL的包名一定要相同

定义为启动在新进程中,只需要在AndroidMainfest.xml中声明是加上一个process属性即可,不过这里有两个地方值得注意: 
1.组件默认的进程名就是包名; 
2.定义新的进程名的时候需要以包的形式(eg: com.xu.aidl)。

http://blog.csdn.net/u011974987/article/details/51243539

http://blog.csdn.net/u011747761/article/details/47609479

http://blog.csdn.net/shareus/article/details/52156414

AIDLBinder的异同:

1.他们都与IPC(远程)调用有关。

2.本质不同,Binder是一个对象,继承了IBinder对象,你可以借助它来自定义RPC协议。AIDLandroid提供的接口定义语言,借助这个工具,你可以很轻松地实现IPC通信机制,根据需要灵活定义接口,

3.作用范围不同。如果是在一个应用里实现远程调用,使用Binder即可,没必要使用AIDL。如果涉及到在多个应用程序之间使用IPC通信,并且在服务又有多线程业务处理,这时可以使用AIDL

http://blog.csdn.net/sunny_girl_11/article/details/49885111

56进程状态变化

57、 RecyclerView 和 ListView的区别

http://www.360doc.com/content/16/0808/14/9200790_581676933.shtml

 

58、LruCache类

LruCacheandroid提供的一个缓存工具类,可用来缓存图片其算法是LRULeast Recently Used最近最少使用算法。它把最近使用的对象用强引用存储在LinkedHashMap中,并且把最近最少使用的对象在缓存值达到预设定值之前从内存中移除,有效的避免了OOM的出现。

LinkedHashMap继承于HashMap,它使用了一个双向链表来存储Map中的Entry顺序关系,这种顺序有两种,一种是LRU顺序,一种是插入顺序,这可以由其构造函数public LinkedHashMap(int initialCapacity,float loadFactor, boolean accessOrder)指定。LruCache中将LinkedHashMap的顺序设置为LRU顺序来实现LRU缓存,每次调用get(也就是从内存缓存中取图片),则将该对象移到链表的尾端。调用put插入新的对象也是存储在链表尾端,这样当内存缓存达到设定的最大值时,将链表头部的对象(近期最少用到的)移除。

除了LRU算法另外还有两种常见的Cache算法:FIFOFirst in First out,先进先出)、LFULeast Frequently Used最近最少使用算法)FIFO算法比如作业调度(先来先服务)LFULRU算法的不同之处,LRU的淘汰规则是基于访问时间,而LFU是基于访问次数的。

http://www.cnblogs.com/tianzhijiexian/p/4248677.html

http://www.cnblogs.com/dolphin0520/p/3749259.html

59、android】数据库升级完整解决方案

保证用户正常升级的情况下原来的数据不会丢失

http://blog.csdn.net/u011494050/article/details/38778119

60、 Android屏幕适配经验谈

http://blog.csdn.net/xiebudong/article/details/37040263/

 

dpi dot per inch,每英寸的点数。

px  像素。一块显示屏是由很多的光点组成的,每一个光点就是一个像素。

屏幕密度   每inch(英寸)的像素数,1inch = 2.54cm

ppi和屏幕密度一个意思,全称是pixel per inch.  是专业一点的叫法.

 

Android系统寻找图片的步骤是这样的:

1, 去屏幕密度对应的目录去找。如果找到就拿来用。

2, 如果没找到,就去比这个密度高一级的目录里面去找,如果找到就拿来用。

3, 如果没找到就继续往上找。以此类推。

4, 如果到了xxhdpi目录还没有找到的话,就会去比自身屏幕密度低一级的目录去找,如果低一级的目录>=hdpi,找到了就拿来用。

5, 如果没找到, 就去mdpi目录去找, 如果找到了,就拿来用。

6, 如果没找到,就去默认的drawble目录里去找, 如果找到了就拿来用。

7 ,如果没找到,再去最低的ldpi目录里去找。如果找到了,就拿来用。

8, 如果没找到, 那就是没找到了, 图片无法显示。(不过一般不会出现这种现象,因为如果每个目录都没有这个图片的话,你是编译不过的)

61、Java集合类源码分析汇总

http://www.cnblogs.com/hzmark/archive/2013/01/05/JavaCollectionSum.html

62、内部类

内部类有两种情况:

(1) 在类中定义一个类(私有内部类,静态内部类)

(2) 在方法中定义一个类(局部内部类,匿名内部类)

http://www.cnblogs.com/jiangao/archive/2012/02/23/2364119.html

http://www.cnblogs.com/yaoyinglong/p/Java%E5%86%85%E9%83%A8%E7%B1%BB-%E8%AF%AD%E6%B3%95%E7%AF%87.html

63、单例模式

http://blog.csdn.net/beyond0525/article/details/22794221

http://blog.csdn.net/u012416928/article/details/43149343

64、Intent的Falg

http://blog.csdn.net/javensun/article/details/8700265

http://blog.csdn.net/miao309410364/article/details/47262869

65、二叉树的深度遍历和广度遍历

深度遍历用栈stack实现,广度遍历用队列Queue实现。

红黑树是一种自平衡二叉查找树。红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以外,对于红黑树增加了以下五个性质:

性质1. 节点是红色或黑色。

性质2. 根节点是黑色。

性质3 每个叶节点(NIL节点,空节点)是黑色的。

性质4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)

性质5. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

66、推送

67、MVC模式

68、android 常见面试题以及答案

http://blog.csdn.net/gaiyindexingqiu/article/details/70173017(必看)

http://blog.csdn.net/bobo1808/article/details/6783344

http://blog.csdn.net/bobo1808/article/details/7207617

一条最长的短信息约占多少byte?

中文70(包括标点),英文160个字节

69、Android进程的内存管理分析

http://blog.csdn.net/gemmem/article/details/8920039

Android内存泄漏分析及调试

http://blog.csdn.net/gemmem/article/details/13017999

70、Web开发中,HTML提供了下拉列表的实现,就是使用