腾讯Android岗社招面筋分享
电话一面:
1、Android事件分发机制,如何处理冲突;
2、webview有哪些问题?
3、listview缓存机制和优化;
4、Bitmap图片优化;
5、okhttp源码:分发器和五大拦截器;
6、线程间通信和进程间通信;
7、类加载机制;
8、如何做进程保活?
9、了解小程序、RN、flutter吗?
笔试二面:
1、求下列代码执行后result的值;
String intersect(String s1,String s2){
char[] c1 = s1.toCharArray();
char[] c2 = s2.toCharArray();
List<Character> list = new ArrayList<>();
StringBuilder sb = new StringBuilder();
for(int i=0;i<c1.length;i++){
for(int j=0;j<c2.length;j++){
if(c1[i]==c2[j] && !list.contains(c1[i])){
list.add(c1[i]);
sb.append(c1[i]);
}
}
}
return sb.toString();
}
public SingleClass{
private static SingleClass instance = new SingleClass();
private SingleClass instance2;
public static SingleClass getInstance(){
return instance;
}
public static SingleClass getInstance2(){
if(instance2==null){
sychronized(SingleClass.class){
if(instance2==null){
instance2 = new SingleClass();
}
}
}
}
}
4、sleep,wait,yield在多线程应用中的区别
5、使用JNI时,如何在C++代码中访问到一个java对象
public void sort(int[] a){
//注意此行是重点,不能放到循环内
int temp;
for(int i=0;i<a.length;i++)
for(int j=0;j<a.length-i-1;j++){
if(a[j]>a[j+1]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
} 三面:
1、四大组件、activity启动模式、activty各种情况下的生命周期
(1)activity生命周期:onCreate - onStart - onResume - onPause - onStop - onDestroy - onRestart
(2)activity启动模式:standard、singleTop、singleTask、singleInstance
(3)singleTop在栈顶时候再启动的生命周期变化:onPause - onNewIntent - onResume
(4)singleTask在栈内再次启动时候的生命周期变化:onRestart - onStart - onResume
2、屏幕横竖屏切换时的生命周期变化
(1)onCreate - onStart - onResume - onPause - onSaveInstanceState - onStop - onDestroy - onCreate - onStart - onRestoreInstanceState - onResume
3、view的绘制流程
(1)测量
(2)布局
(3)绘制
①绘制背景
②绘制画布
③绘制内容
④绘制孩子
⑤绘制阴影
四面:
1、http 1.0 、1.1和2.0的区别
(1)1.0每次都要重新建立连接
(2)1.1连接可以复用
(3)2.0可以实现并发多路复用,长连接服务器可主动向客户端推消息
2、你这个项目是怎么做架构设计的?如何做事件传递?EventBus中如何处理生命周期问题?组件化如何解决模块间部分服务调用问题?
(1)架构层次和模块划分,细节请点击
(2)事件传递使用EventBus
(3)模块间页面跳转和调用使用Arouter,部分服务调用抽离接口到基层模块
#腾讯##安卓工程师##社招##面经#
查看2道真题和解析
顺丰集团工作强度 361人发布