Android面试题基础集锦《一》
来源:互联网 发布:python数据处理怎么样 编辑:程序博客网 时间:2024/05/21 21:48
10道题值得思考
第一道题
1、Android 数据存储方式分为哪几种?
SharedPreferences存储数据
2. CotentProvider内容提供者
3. 文件存储
4. 数据库存储(Sqlite)
5.网络存储
2. NDK是什么? 1. 一系列工具类的集合 2. Arm指令集 3. NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。 NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。 NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。
3.Android线程间的网络通信有哪些?
共享内存(变量);文件,数据库;Handler;Java 里的 wait(),notify(),notifyAll()
4、Android横竖屏生命周期切换?
横竖屏切换生命周期
1、启动程序进入Activity界面
这里写图片描述
onCreate(初始化)–>OnStart(启动)–>OnResume(恢复)
2、旋转切换屏幕
这里写图片描述
onPause(暂停)–>OnSaveInstanceState(保存当前状态)–>OnStop(停止)–>OnDestory(销毁)–>onCreate(初始化)–>OnStart(启动)–>OnRestoreInstanceState(再次保存状态)–>OnResume(恢复)
3.Android横竖屏切换在手机开发中比较常见,很多软件在开发过程中为了避免横竖屏切换时引发不必要的麻烦,通常禁止掉横竖屏的切换。
一、在AndroidManifest.xml中设置activity中的android:screenOrientation属性值来实现。
(1)竖屏:android:screenOrientation=”portrait”
(2)横屏:android:screenOrientation=”landscape”
二、在Java代码中通过类似如下代码来设置 (不推荐这种方法,在大的app不同方向启动时会慢)
(1)竖屏: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
(2)横屏:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
三、如果要彻底禁止翻转,忽略重力感应带来的切换,(模拟器上不管用,在真机上是正确的)
(1)忽略重力:android:screenOrientation=”nosensor”
横竖屏辨识
一、在onConfigurationChanged里判断,为了onConfigurationChanged在监听屏幕方向变化有效需要以下条件
(1)AndroidManifest.xml增加权限:<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>
(2)AndroidManifest.xml里设置的MiniSdkVersion和 TargetSdkVersion属性大于等于13
(3)在AndroidManifest.xml的Activity里增加:android:configChanges="keyboard|screenSize|orientation|layoutDirection"
(4)在onConfigurationChanged(Configuration newConfig)进行判断
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.orientation == 1)//竖屏
if(newConfig.orientation == 2)// 横屏
}
二、因为当屏幕变为横屏的时候,系统会重调用Activity的onCreate方法可以在onCreate中来检查当前的方向,然后可以让你的setContentView来载入不同的layout xml。
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
Log.i("info","landscape"); // 横屏
} else if(this.getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT) {
Log.i("info","portrait"); // 竖屏
}
第一道题
1、Android 数据存储方式分为哪几种?
SharedPreferences存储数据
2. CotentProvider内容提供者
3. 文件存储
4. 数据库存储(Sqlite)
5.网络存储
2. NDK是什么? 1. 一系列工具类的集合 2. Arm指令集 3. NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。 NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。 NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。
3.Android线程间的网络通信有哪些?
共享内存(变量);文件,数据库;Handler;Java 里的 wait(),notify(),notifyAll()
4、Android横竖屏生命周期切换?
横竖屏切换生命周期
1、启动程序进入Activity界面
这里写图片描述
onCreate(初始化)–>OnStart(启动)–>OnResume(恢复)
2、旋转切换屏幕
这里写图片描述
onPause(暂停)–>OnSaveInstanceState(保存当前状态)–>OnStop(停止)–>OnDestory(销毁)–>onCreate(初始化)–>OnStart(启动)–>OnRestoreInstanceState(再次保存状态)–>OnResume(恢复)
3.Android横竖屏切换在手机开发中比较常见,很多软件在开发过程中为了避免横竖屏切换时引发不必要的麻烦,通常禁止掉横竖屏的切换。
一、在AndroidManifest.xml中设置activity中的android:screenOrientation属性值来实现。
(1)竖屏:android:screenOrientation=”portrait”
(2)横屏:android:screenOrientation=”landscape”
二、在Java代码中通过类似如下代码来设置 (不推荐这种方法,在大的app不同方向启动时会慢)
(1)竖屏: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
(2)横屏:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
三、如果要彻底禁止翻转,忽略重力感应带来的切换,(模拟器上不管用,在真机上是正确的)
(1)忽略重力:android:screenOrientation=”nosensor”
横竖屏辨识
一、在onConfigurationChanged里判断,为了onConfigurationChanged在监听屏幕方向变化有效需要以下条件
(1)AndroidManifest.xml增加权限:<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>
(2)AndroidManifest.xml里设置的MiniSdkVersion和 TargetSdkVersion属性大于等于13
(3)在AndroidManifest.xml的Activity里增加:android:configChanges="keyboard|screenSize|orientation|layoutDirection"
(4)在onConfigurationChanged(Configuration newConfig)进行判断
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.orientation == 1)//竖屏
if(newConfig.orientation == 2)// 横屏
}
二、因为当屏幕变为横屏的时候,系统会重调用Activity的onCreate方法可以在onCreate中来检查当前的方向,然后可以让你的setContentView来载入不同的layout xml。
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
Log.i("info","landscape"); // 横屏
} else if(this.getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT) {
Log.i("info","portrait"); // 竖屏
}
注意:该方法是在AndroidManifest.xml中不设置onConfigurationChanged才能重走生命周期
宁波微整形医院http://www.lyxcl.org/wzxmr/
阅读全文
0 0
- Android面试题基础集锦《一》
- Android面试题基础集锦《一》
- Android 面试题基础集锦《一》
- Android面试题集锦(一)
- android面试题集锦
- Android面试题集锦
- Android面试题集锦
- android 面试题集锦
- Android面试题集锦
- Android面试题集锦
- Android面试题集锦
- android面试题集锦
- Android面试题集锦
- android面试题集锦
- Android面试题集锦
- Android面试题集锦
- iOS基础面试题 集锦
- java面试题集锦(一)
- Protobuf详解(.Java文件)
- LightOJ
- 将Android Studio工程内置到源码工程编译并设置成默认Launcher
- 使用DelayQueue 和 FutureTask 实现java中的缓存
- What is an abstract class, and when should it be used?
- Android面试题基础集锦《一》
- 利用java对基本汉字(unicode编码4E00-9FA5)进行笔画排序
- linux注销登录用户
- 面向对象特征-多态
- redis命中率计算
- OpenSSL命令---rsautl
- libsvm处理多分类问题
- 拷贝案例——拷贝指定目录的指定类型的文件到指定目录
- html5将文字生成图片