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"); // 竖屏


    }


    注意:该方法是在AndroidManifest.xml中不设置onConfigurationChanged才能重走生命周期




宁波微整形医院http://www.lyxcl.org/wzxmr/

原创粉丝点击