腾讯Android岗社招面筋分享

电话一面:

1、Android事件分发机制,如何处理冲突;

2、webview有哪些问题?

3、listview缓存机制和优化;

4、Bitmap图片优化;

5、okhttp源码:分发器和五大拦截器;

6、线程间通信和进程间通信;

7、类加载机制;

8、如何做进程保活?

9、了解小程序、RNflutter吗?


笔试二面:

1、求下列代码执行后result的值;

2、写一个函数,输入两个字符串,输出这两个字符串的字符的交集。例如,当s1=“mafazine”,s2=“validate"时,函数返回"aie”
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();
    }

3、写出2种单例模式的实现
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对象

6、手写冒泡排序
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各种情况下的生命周期

1activity生命周期:onCreate - onStart - onResume - onPause - onStop - onDestroy - onRestart

2activity启动模式:standardsingleTopsingleTasksingleInstance

3singleTop在栈顶时候再启动的生命周期变化:onPause - onNewIntent - onResume

4singleTask在栈内再次启动时候的生命周期变化:onRestart - onStart - onResume


2、屏幕横竖屏切换时的生命周期变化

1onCreate - onStart - onResume - onPause - onSaveInstanceState - onStop - onDestroy - onCreate - onStart - onRestoreInstanceState - onResume


3、view的绘制流程

1)测量

2)布局

3)绘制

①绘制背景

②绘制画布

③绘制内容

④绘制孩子

⑤绘制阴影


四面:

1、http 1.0 1.12.0的区别

11.0每次都要重新建立连接

21.1连接可以复用

32.0可以实现并发多路复用,长连接服务器可主动向客户端推消息

2、你这个项目是怎么做架构设计的?如何做事件传递?EventBus中如何处理生命周期问题?组件化如何解决模块间部分服务调用问题?

1)架构层次和模块划分,细节请点击

2)事件传递使用EventBus

3)模块间页面跳转和调用使用Arouter,部分服务调用抽离接口到基层模块

#腾讯##安卓工程师##社招##面经#
全部评论
这是实习的题目吧
点赞 回复 分享
发布于 2020-07-07 22:49
牛逼啊
点赞 回复 分享
发布于 2020-11-16 13:06
楼主几年工作经验
点赞 回复 分享
发布于 2020-12-06 10:44

相关推荐

无敌虾孝子:喜欢爸爸还是喜欢妈妈
点赞 评论 收藏
分享
牛客771574427号:恭喜你,华杰
点赞 评论 收藏
分享
8 51 评论
分享
牛客网
牛客企业服务