Android面试笔记

一,半导体公司,开发公司内部资讯APP
1,项目的结构


childAPP.png

2,跨平台主要使用哪些方式
Cordova
Cordova通过对HTML、CSS、JS封装为原生APP。Cordova将不同设备的功能,按标准进行了统一封装,开发人员不需要了解设备的原生实现细节,并且提供了一组统一的JavaScript类库,以及为这些类库所使用的设备相关的原生后台代码。因此实现了“write once, run anywhere”(一次开发,随处运行)

React Native
React Native支持标准平台组件使用,在iOS平台我们可以使用UITaBar控件,在Android平台我们可以使用rawer控件。这样App从使用上和视觉上拥有像原生App一样的体验

Flutter
Flutter是面向iOS和Android应用,提供一套基础代码(使用Dart语言)的高性能高可靠软件开发工具包,使开发者能够在iOS和Android两个主要的移动平台上,打造统一代码的高性能应用。
Flutter能够在iOS和Android上运行起来,依靠的是一个叫Flutter Engine的虚拟机,Flutter Engine是Flutter应用程序的运行环境,开发人员可以通过Flutter框架和API在内部进行交互

3,项目中的保活是怎么做到的
1),前台服务,startForeground

  1. ,双进程保活
    3),使用WakefulBroadcastReceiver,WakefulBroadcastReceiver是BroadcastReceiver的一种特例。它会为你的APP创建和管理一个PARTIAL_WAKE_LOCK 类型的WakeLock。WakefulBroadcastReceiver把工作交接给service(通常是IntentService),并保证交接过程中设备不会进入休眠状态。如果不持有WakeLock,设备很容易在任务未执行完前休眠。最终结果是你的应用不知道会在什么时候能把工作完成;
    4),JobService
    5),开启自启动权限及允许后台允许 针对不同的机型做不同的处理,小米是神隐模式 华为锁屏清理应用等等

4,团队协作

5,activity的生命周期
onCreate onStart onResume onpPause onStop onDestroy

二、手机终端
1,笔试,两个int 分别是a,b 不使用临时变量的情况下 如何交换a,b的值
1),#python下,只要下面两行
a = 1,b = 2
a , b = b , a

2),通用的方法
int a = 1, b=2;
a = a+b;
b = a-b;
a = a-b;

int a=2=010(二进制);
int b=4=100(二进制);
异或运算如下:
a=ab=010100=110(此时,a的值改变为二进制的110)
b=ab=110100=010(此时,b的值改变为二进制的010,即十进制的2)
a=ab=110010=100(此时,a的值改变为二进制的100,即十进制的4)

2,笔试,字符串,不使用API函数的情况下,如何比较是否相等

3,activity转换屏幕的生命周期
1),运行Activity,得到如下信息

onCreate-->
onStart-->
onResume-->

2)、按crtl+f12切换成横屏时
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->

3),再次切换竖屏
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->

4,launcher的属性,和普通APP的区别
launcher和APP区别:
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY" />
</intent-filter>
5,tcp/ip的理解 每一层是否了解,知道数据抓包吗?Tcp/ip和udp的区别是什么?
物理层
数据链路层
传输层
网络层
会话层
表示层
应用层

6,为什么要内部类,你是在什么情况用到?
1).一个内部类的对象能够访问创建它的对象的实现,包括私有数据。
2). 对于同一个包中的其他类来说,内部类能够隐藏起来。
3).匿名内部类可以很方便的定义回调。
4).使用内部类可以非常方便的编写事件驱动程序
5).一个内部类对象可以访问创建它的外部类对象的内容,甚至包括私有变量

匿名内部类的

public class JavaTest2 {
public static void main(String[] args) {
new Person() {
public void say() {// 匿名内部类自定义的方法say
System.out.println("say方法调用");
}

        @Override
        public void speak() {// 实现接口的的方法speak
            System.out.println("speak方法调用");
        }
    }.say();// 直接调用匿名内部类的方法
}

}
interface Person {
public void speak();
}

7,字符串转int,int转字符串
String s = String.valueOf( value); // 其中 value 为任意一种数字类型。

String s = "test";
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );

8,主线程和子线的通信及主线程启动子线程如何携带参数?

synchronize对象锁
synchronize线程间的通信

9,NDK的开发流程
1),编写Java中的native方法
2),将Java编译成class字节码文件
3),用javah -jni命令生成.h文件
4),本地代码实现.h文件中的函数
5),将本地代码编译成动态库
6),在Java中使用 System.loadLibrary

10,有接触过framework层吗?
编译源码的步骤:链接https://www.jianshu.com/p/f2519cc40a7d

11,dp和像素的区别,和屏幕的大小有关系吗?

三、xx云科技
主要两部分,笔试和面试

笔试有15道 包括冒泡排序,Android中的同步有哪些?
面试
1,Android事件分发,如果在一个activity有很多的view 这个页面1分钟之后没有操作将返回上一层,在那个方法实现及逻辑合适?
1),定义一个timeTask 倒计时
2),在dispatchTouchEvent Action_up开始计时 其他动作取消计时

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    switch (ev.getAction()) {
        //获取触摸动作,如果ACTION_UP,计时开始。
        case MotionEvent.ACTION_UP:
            back.start();
            break;
        //否则其他动作计时取消
        default:
            back.cancel();
            break;
    }
    return super.dispatchTouchEvent(ev);

2,图片加载有哪些?glide图片加载的优势

Glide 在加载资源的时候,如果是在 Activity、Fragment 这一类有生命周期的组件上进行。
当 Activity、Fragment 等组件进入不可见,或者已经销毁的时候,Glide 会停止加载资源。
Application 的生命周期贯穿整个应用,所以 applicationManager 只有在应用程序关闭的时候终止加载。

3,进程间的通信有哪些?
1),广播
2),aidl

  1. ,Intent
    4),Content Provider
    5),Binder

4,oom是怎么导致的,原因是什么?
内存溢出:申请的内存超出了JVM能提供的内存大小,此时称之为溢出
1).内存泄露造成
2).加载的文件或者图片过大造成

5,内存泄漏是什么,如何解决内存泄漏问题?
1),由于单例的静态特性使得其生命周期和应用的生命周期一样长,如果一个对象已经不再需要使用了,而单例对象还持有该对象的引用,就会使得该对象不能被正常回收,从而导致了内存泄漏。

6,有没有做过和硬件相关的通信?
暂无

7,Android的消息机制,handle消息机制?

8,垃圾回收的原理

四,xx金融公司
1,说一下你项目的技术点

2,你项目中的自动设置是如何做到的
3,适配如何做的
4,socket长连接实现
5,如何保活

五,xx龙集团公司
1,说一下你在项目主要负责那些模块
2,线程之间的通信,eventBus的实现原理
3,为什么会内存泄漏,如何解决
4,如何解决事件的冲突
5,自定义view有做过吗?
6,目前项目使用什么模式?MVVM模式有了解吗?viewmode的作用?
7,rxjava有了解吗?
8,有使用过leakcanry的实现机制是什么呢?
9,Android打包机渠道包如何做?

六,xx出行
1,笔试题,快速排序,Java的数据接口及
2,说说项目的主要功能
3,什么是代理
4,hashMap的实现机制
5,Android耗电量主要问题点
6,aidl通信
7,多线程的使用
8,http的机制是如何的?

七,xx旅行
1,内存泄漏的原因是什么?什么是引用,有几种引用,Java回收的时候,哪些引用是会被回收
2,rxjava的理解 如果发出两个请求如何同时获得反回值
3,自定义viewGroup的流程 怎么样测量子view 和确认在画布上
4,使用了realm数据库 这数据的有点是什么?
5,画一下你们项目结构,不涉及商业机密
6,MVP的模式 如果view销毁了 请求还在这时候有做什么处理?会导致什么样的问题?
7,OKhttp的拦截器机制你了解吗?

写一个算法题
一个数组 希望得到一个新的数组 数组1*2 数组2 *4 以次2……n倍数
算法题2 假如一个月拍一个牌照的概率是5%,1年有12个月 排到拍照的概率多少?

八,某社交公司
1,MVP的使用和MVC有什么区别,MVP会导致内存泄漏
2,了解设计模式吗?哪些
3,如何内存优化的
4,kotlin转换数据类型
5,recycleview中通过什么控制布局方向
6,eventBus的使用及机制
7,性能优化
8,tcp/ip的七层是哪七层
9,socket长连接是如何保证心跳
10,线程有几种状态
11,工厂模式有几种 什么情况下使用
12,继承和抽象分别在什么时候使用
13,发射如何使用,在什么时候使用

九,
1,反射修改资源文件
2,强制开启流量
3,加固的原理、AAR文件可以加固吗
Android的打包机制是aapt 打包源文件,包括res、asset、Androidmainfest.xml 文件 Android基础库
aidl 转化为.Java文件 JavaComile把Java
4,组件化和热修复的原理
5,多线程的理解和同步

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容