Android--面试题总结

由于公司和个人原因 现在必须面临 再就业,最近都在面试,面试的方向有Android和Android逆向和IOS逆向,所以问的问题都挺详细的,也怪自己平时看的东西和涉猎的东西太广,导致根本没有着眼Android自身,在被问到一些问题,还是挺懵逼的。哎 心酸史。 (更新到我找到工作为止,我估计这辈子是不可能断更了 :-( ) 停止更新已经找到工作

Android方向

  • Android的生命周期?(我想干Android的这个都倒背如流了吧,而悲催的我 却忘了,哎),下面放一个Android生命周期的图。
    这里写图片描述
    详细资料:来自网上

  • Android中Service是否是区别于Activity的进程还是在你应用中的进程?(我被问懵逼了,居然说Service不是新的进程,上天请劈了我吧)
    详细资料:来自网上

  • Android的热更新你有使用过嘛? 原理是什么?
    VirtualAPK的热更新框架
    VirtualAPK说明和使用
    鸿洋对VirtualAPK的源码解析

  • 如果我需要动态的更换我的so库呢?该如何做?
    这个问题请原谅我才疏学浅,由于对方公司是做SDK产品的,我还没有想到集成对方公司的SDK后,在SDK的SO出现问题后怎么动态更改已经处在生产环境下的so 在线替换。难不成要像热更新一样? 有知道方案的朋友告知我下,这样难道不侵入其他厂商的APK嘛,要是可以生产环境下就改so..现在想想有点可怕 跟植入后门一样了。

  • Android你对AMS和WMS理解多少,Binder的通讯机制你了解多少。
    请原谅我最近才开始阅读Android framework的源码,这里放一个我最近看过的一个GitBook上的讲解。

  • 你对接过第三方支付嘛?遇到过什么问题?(当时我在想,我的天 我哪记得出过啥问题了,都是按官网的对接要求做的,也没碰到啥问题。)

  • 请问有没有上传过大文件 100MB以上的?

    1. 采用Socket进行上传大文件
    2. 采用随机读写进行文件分块上传

Android逆向

  • Android中如果函数内的方法需要被更改,你是如何做的呢?
    在和面试官大哥交谈(此大哥真的很好,如果不是面试官该多好,风趣幽默)。发现自己确实在最基本的还是基础不是太扎实。我并没有很好的答出来,面试大哥给我解惑了,直接进行使用汇编在此处进行使用跳转语句修改后,再跳回来。当然我听到这个是懵逼的,好好运行的程序怎么可能让你直接用汇编操作,后来面试大哥告诉我有一个框架已经实现了(当然面试大哥也是有能力开发出次框架)后来很开心可以加到面试大哥微信。这里推荐大家看下大哥给我推荐的两篇文章。
    Android中的so注入(inject)和挂钩(hook) - For both x86 and arm
    看雪论坛上 inline hook的实现原理
    看雪牛人放出的:libinject

  • 可以给我说一下 大端和小端(Big endian and Little endian)嘛?
    详细资料:来自网上

Android JNI开发

  • 如何捕获在线上服务中SO出现的异常,你是怎么获取奔溃的堆栈信息呢。
    这个问题我真的没想过,都是用Application 实现Thread.UncaughtExceptionHandler接口做未捕获异常上报。这下在JNI层的so出现异常该怎么做呢,我也是懵逼。
    JNI异常处理

    题外话:

    1. JNI/NDK的开发指南的专栏
    2. NDK-Stack定位crash
  • ENV是几级指针
    这里要区分 C还是C++了,C是二级指针,而C++中是一级指针

  • adb你会使用吗?说说你经常用的命令?
    ADB的相关命令

  • 你会linux嘛?罗列进程是那个指令?(大家从这个问题,就可以看出我是多么被贬低了吧,心酸 这个我还是能答出来的)

  • Android中如果你声明了一个Activity的class类,但没有在清单文件中声明他,是否可以将其吊起? 如果不能 有什么方法可以吊起嘛? (相当深啊,我的天 我被问懵逼了,考察的很多呢)
    面试我的时候,因为考虑当时对方公司性质,真的没往hook上面想,但是我深知这样是可以的,但是没有阅读源码,所以也说不出那个方法可以实现,下来百度了下。
    Android免清单注册吊起Activity

IOS逆向

  • ASO体系并不是这么简单,你确定你开发的是有效的?
    我只能说,在我开发出来时候,做了(改机,清keychain,AppStore排名优化,自动启动AppStore,账号登录登出,适配10系统,评论功能,模拟触碰,动态IP池,自动下载和成功后的取消下载)。我只能说我当时做出来是有效的,Apple的策略改变没有,在公司倒闭后 我就没再更深的了解了。这个东西并不是那么容易玩的转的。

  • 你除了对arm汇编 了解完 你懂x86汇编嘛?(哎 我一个玩arm平台的 突然问我x86我还是依然懵逼)
    X86汇编指令

猜你喜欢

转载自blog.csdn.net/qq_15807167/article/details/79462870