前言
大厂一直是很多小伙伴梦寐以求都想进入的地方,但是一般苦于能力以及没有对应的面试资源而分外艰难。
近日抽时间整理了下大厂面试的面试题内容,各位想去面试大厂的可以提前做做准备。
希望对各位将要面试的小伙伴有帮助!!!
《Android面试大厂必考174题》
- SD卡
- android的数据存储方式
- BroadcastReceiver
- sp频繁操作会有什么后果?sp能存多少数据?
- dvm与jvm的区别
- ART
- Activity的生命周期
- Application能不能启动Activity
- Activity的状态都有哪些
- 横竖屏切换时Activity的生命周期Activity的状态都有哪些
- 如何设置activity成窗口样式
- Activity的启动方式
- Service的生命周期
- IntentService
- Fragment和Activity的onCreateOptionsMenu
- Service的onStartCommand有几种返回值
- Service的onRebind什么情况下执行
- Handler防止内存泄露
- IntentFilter的匹配法则
- Fragment与Activity传值
- Fragment 生命周期
- Fragment的add和replace的区别 //replace==remove|append
- Fragment如何实现Activity栈的压栈和出栈
- 什么情况下造成内存泄露
- 图片过大导致OOM
- SoftReference跟WeakRefrence的区别
- dp与px
- 设置布局为一半宽、高
- 多分辨率支持的清单文件配置
- Android的事件分发机制
- ArrayList和LinkedList的区别
- LruCache
- 什么是ANR,如何规避
- 描述Service的启动方式
- Android有哪几种布局
- HashMap、HashTable的区别 //从线程安全性、速度
- 红黑树
- Handler Looper 工作原理
- Listview的几种adapter介绍
- 如何在ListView间添加分割线
- LinkedHashMap 源码解读
- Drawable转Bitmap
- Layout_weight
- android:layout_gravity和android:gravity的区别
- 如何重用布局
- 使用merge减少include布局所造成的布局层次
- 如何优化布局
- android:layout_gravity的使用规则
- TextView显示图像
- SpannableString的使用
- AutoCompleteTextView的使用
- 在按钮上显示图像的方式有哪些
- 如何动态改变Button的大小和位置
- 如何让一个显示图像的按钮在不同状态下显示不同图像
- 如何实现图像的半透明度
- HttpURLConnection
- ProgressBar
- AbsListView
- ListView,如何进行数据的增删改查
- ListView中如何显示数据库中的数据
- android TypedArray
- 如何动态加载apk文件(未安装)的类
- Android ContentProvider
- 如何设置Activity为程序启动的默认Activity
- 启动Activity的几种方式
- Activity传递数据的方式
- 如何将Activity设置成半透明的模态框
- 如何接收广播
- 如何获取短信内容
- 如何拦截手机屏幕休眠和唤醒
- 如何发送广播
- AIDL与Service
- 如何读取联系人信息
- 请描述Content Provider的uri由哪几部分组成
- 介绍开发ContentProvider的步骤
- 如何为ContentProvider添加访问权限
- AlertDialog
- 如何自己控制对话框的关闭时机
- 如何改变对话框的透明度
- 如何自己控制Toast的显示和关闭
- 如何使用Notification
- PendingIntent使用 //跨进程intent
- 点击Notification触发Activity跳转
- 如何自定义Notification的view
- 然后为一个Activity添加选项菜单
- 如何将上下文菜单绑定至可视组件View
- 在单击菜单时,如何能跳转进别的Activity
- 菜单的回调函数有哪些
- 如何使用SharedPreferences存取数据
- SharedPreferences //构造函数(string name,int mode)
- Android如何解析xml文件
- gson
- 如何将table1表的数据和结构复制到table2上
- SQLite
- SQLiteOpenHelper.getReadableDatabase和SQLiteOpenHelper.getWritableDatabase将数据库文件放哪了
- 然后将带数据的SQLite同apk一起发布
- Socket连接成功后,怎么获取服务器的ip和域名
- BufferedInputStream mark //只有BufferedInputStream实现了mark方法
- 如何打开手机中的蓝牙功能
- 如何获取已绑定的蓝牙设备
- 搜索蓝牙的过程中经过哪些状态
- 隐式Intent
- 如何采用广播监听去电和来电
- Android支持的电话状态
- Android如何控制接听和挂断电话
- 请给出访问通话记录的Content Provider URI
- 发送短信 //需要动态请求权限:android.permission.SEND_SMS
- ContactsContract
- VideoView 播放视频
- 在工程路径下的res/drawable存放tree.png,如果将图片显示在View上
- 调用Drawable进行绘图
- 如何设置图像透明度
- 如何旋转View
- Activity 切换
- Android
- 动画
- 属性动画 Animator
- 定义字符串数组资源
- 图层layer资源
- Clip图像资源
- ShapeDrawable
- 如何统一设置多个View的android:textSize和android:textColor
- 属性动画 Animator123布局文件中的”@“、”+”、”?”含义
- Android获取屏幕高度和宽度的办法
- AsyncTask
- Intent可传递的数据类型
- AlarmManager //闹钟
- HandlerThread
- 自定义ViewGroup
- JVM的GC算法
- OkHttp
- ButterKnife //源码阅读
- Dalvik内存模型
- ART垃圾回收
- JVM 可达性分析中哪些对象可以作为根节点
- HashSet
- SSL中的对称加密和非对称加密
- Handler的内存泄露问题
- Android volatile关键字
- EventBus 源码阅读 //反射Class通常采用通配符 =>Class<?>或者Class<? extends T>
- String a=“ abc”;String b=“ abc”; 创建了几个对象 //栈存放引用变量 堆存在new出来的对象,并且堆划分出一部分作为常量池
- java的单例创建
- Android进程优先级
- ThreadLocal 源码
- 自定义View对象
- Android @Override //重写
- Android Semaphore机制
- Android Lock同步
- ThreadPoolExecutor 线程池
- Android下载图片通过bitmap设置ImageView
- ImageView
- onSaveInstanceState //保存app数据,当系统因内存不足时而销毁app,会得到调用
- ViewPager&PagerAdapter&TabFragmentPagerAdapter
- Fragment在横竖屏切换时的数据保存
- DialogFragment //采用子类继承的方式进行使用,相比AlertDialog由FragmentManager负责自动重建
- SQLiteDatabase
- IntentFilter的匹配规则
- Android多进程
- Android Scroller
- Sqlite 连接操作
- Spinner
- RelativeLayout 源代码
- Message //static Message sPool,指向队列前头的可用Message对象
- ArrayDeque 源代码阅读
- RecyclerView
- LinearLayoutManager //RecyclerView的布局管理器
- GridLayoutManager
- RecyclerView 使用
- Binder
- ActivityThread //Android应用的主线程
- CountDownLatch 线程同步
- retrofit
- ClassLoader 类加载器
- RxJava