Android面试题最新整理,2022年最新版

每年的9月和10月

是互联网大厂疯狂招人的时期

也是程序员们跳槽的黄金期

不知道你有没有幻想过这样一个场景:

大厂的面试官说

恭喜你通过面试,明天来办理入职吧!

今天,为大家整理了2022年Android大厂面试真题

刷企业历年真题,助你轻松搞定offer

你确定不看?

你确定不收藏?

你确定不转发?

1.Application能不能启动Activity

startActivity(intent:Intent,FLAG_ACTIVITY_NEW_TASK) standard模式启动的
Activity,该实例会存放在启动该Activity的Activity所在的任务栈中,而
ApplicationContext不存放在任务栈中

2.Activity的启动方式

standard 不管有没有已存在的实例,都生成新实例
singleTop 如果发现有对应的Activity实例位于栈顶,则重复利用,否则创建实例
singleTask a)栈内复用,复用时具有clearTop机制 b)single taskAffinity in task
singleInstance a)启用一个新的栈结构,将Activity放置于栈结构中,并保证不会有其
它Activity实例进入 b)方便多个应用共享全局唯一的实例

3.Handler防止内存泄露

原因 a).声明Handler为静态类,同时对于Activity的this引用封装成WeakReference
否则会导致匿名类引用了外部Activity,导致Activity不能被回收 b).如果这时对手机硬
件进行横竖屏切换,讲导致Activity被创建,却不能被回收

措施

a).public void onDestroy()
{
mHandler.removeCallbacksAndMessages(null);
}
>>static class MyHandler extends Handler {
WeakReference<Activity > mActivityReference;
MyHandler(Activity activity) {
mActivityReference= new WeakReference<Activity>(activity);
}
@Override
public void handleMessage(Message msg) {
final Activity activity = mActivityReference.get();
if (activity != null) {
mImageView.setImageBitmap(mBitmap);}
}
}

4.如何在ListView间添加分割线.

//推荐用divider设置drawable的分割线
>>.设置全局属性
a).android:divider="#FFF" //设置为null可无视间距b).android:dividerHeight="1px" c).默认的list view不支持设置footerDevider,采取在每个item布局中添加
> <View
android:layout_width="match_parent" android:layout_height="1dp" android:background="#999"
/>

5.如何优化布局

设置为invisible或者gone的View -> ViewStub :1.ViewStub是一个不可见且大小为0
的视图 :2.当ViewStub被设置为visible或者调用.inflate()时就会被指定的layout所代
替 :3.inflatedId指定加载过来的layout id :4.例子

6.在按钮上显示图像的方式有哪些

Button android:drawableXXX(left|rigth|…) Button继承自TextView,可以通过采用
SpannableString进行setText ImageButton a).layout_width&layout_height //设置
了具体的宽高后,图像并不会拉伸,而是背景增大 b).src //设置图片 c).不设置宽高,
表现与ImageView一致

7.如何让一个显示图像的按钮在不同状态下显示不同图像

drawable //通过selector标签构建xml
<selector>
<item android:state_pressed=“true” android:drawable=“@drawable/pressed”/>
<item android:state_focused=“true” android:drawable=“@drawable/focused”/>
<item android:drawable=“@drawable/normal”/>
</selector>
>>程序里设置监听
a).button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Drawable drawable=getResources().getDrawable(R.mipmap.ic_launcher);
v.setBackground(drawable);
}
});
b).button.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
}
});

做了几道大厂面试题,感觉怎么样?

但由于篇幅原因,以上面试题只抽取部分内容展示,需要更多章节面试题内容的可以继续往下看哦,文末卡片直接领取完整版。

第一章 Java方面

  • 第一节 Java基础
  • 第二节 Java集合
  • 第三节 Java多线程
  • 第四节 Java虚拟机

在这里插入图片描述

第二章 Android 方面

  • 第一节 Android 四大组件相关
  • 第二节 Android 异步任务和消息机制
  • 第三节 Android UI 绘制相关
  • 第四节 Android 性能调优相关
  • 第五节 Android 中的 IPC
  • 第六节 Android 系统 SDK 相关
  • 第七节 第三方框架分析
  • 第八节 综合技术
  • 第九节 数据结构方面
  • 第十节 设计模式
  • 第十一节 计算机网络方面
  • 第十二节 Kotlin方面

在这里插入图片描述

第三章 音视频开发高频面试题

  • 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
  • 怎么做到直播秒开优化?
  • 直方图在图像处理里面最重要的作用是什么?
  • 数字图像滤波有哪些方法?
  • 图像可以提取的特征有哪些?

在这里插入图片描述

第四章 Flutter高频面试题

  • 第一节 Dart部分

    • Dart 语言的特性?
    • Dart的一些重要概念?
    • dart是值传递还是引用传递?
    • Dart 多任务如何并行的?
    • 说一下 mixin?
  • 第二节 Flutter 部分

    • Flutter 特性有哪些?
    • Flutter 中的生命周期
    • Widget 和 element 和 RenderObject 之间的关系?
    • mixin extends implement 之间的关系?
    • Flutter 和 Dart的关系是什么?

在这里插入图片描述

第五章 算法高频面试题

  • 如何⾼效寻找素数
  • 如何运⽤⼆分查找算法
  • 如何⾼效解决接⾬⽔问题
  • 如何去除有序数组的重复元素
  • 如何⾼效进⾏模幂运算

在这里插入图片描述

第六章 Android Framework方面

  • 第一节 系统启动流程面试题解析
  • 第二节 Binder面试题解析
  • 第三节 Handler面试题解析
  • 第四节 AMS面试题解析

在这里插入图片描述

第七章 企业常见174道面试题

  • 1.SD卡
  • 2.android的数据存储方式
  • 3.BroadcastReceiver
  • 4.sp频繁操作会有什么后果?sp能存多少数据?
  • 5.dvm与jvm的区别
  • 6.ART
  • 7.Activity的生命周期
  • 8.Application能不能启动Activity
  • 9.Activity的状态都有哪些
  • 10.横竖屏切换时Activity的生命周期

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值