Android开发FAQ

来源:互联网 发布:生产工艺制作软件 编辑:程序博客网 时间:2024/05/22 02:46

Q1. 默认情况用户按下Back键是不会销毁当前Activity的,Activity依旧存在于内存中,如果想要彻底kill掉这个程序可以在代码中做如下处理:

A1.

@Override   public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {/* * If you want to kill the process.   Or maybe you can alert a dialog to make user choose. */ finish();} return super.onKeyDown(keyCode, event) }@Override  protected void onDestroy() {System.exit(0);       //Or.   //android.os.Process.killProcess(android.os.Process.myPid()); }

Q2.android开发 drawable(hdpi,mdpi,ldpi)的区别

A2:

drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:
  (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
  (2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
  (3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
  系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。

Q3.build/core/base_rules.mk:128:*** frameworks/opt/emoji/jni: 

.... libgl2jni already defined by framwworks/base/opengl/tests/gl2_jni/jni 停止 

A3:
从编译规则上看: 

# Make sure that this IS_HOST/CLASS/MODULE combination is unique. module_id := MODULE.$(if \     $(LOCAL_IS_HOST_MODULE),HOST,TARGET).$(LOCAL_MODULE_CLASS).$(LOCAL_MODULE) ifdef $(module_id) $(error $(LOCAL_PATH): $(module_id) already defined by $($(module_id))) endif 

在framwworks/base/opengl/tests/gl2_jni/下面定义的android.mk定义了: 
LOCAL_MODULE := libgl2jni include $(BUILD_SHARED_LIBRARY) 

导致生成的动态库重复,这是不对的,修改tests这个目录不参与编译即可,最直接的办法删除掉framwworks/base/opengl/tests/gl2_jni这个文件夹

Q4. 4.0原生的android系统里,待机锁屏状态下,按menu键自动解锁功能。

A4

/frameworks/base/core/res/values/config.xml
中修改值false 可以使用menu键解锁,true不能解锁

    <bool name="config_disableMenuKeyInLockScreen">true</bool>