Android 程序员必须懂得的 53 个知识点 1. android 单实例运行措施: 我们都懂得 Android 平台没有任务管理器,而内部 App 维护者一种 Activity history stack 来实现窗口显示和销毁,对于常规从快捷方式运行来看都是 startActivity 也许会使用 FLAG_ACTIVITY_NEW_TASK 标识来打开一种新窗口,例如 Launcher,因此考虑单任务的实现措施比较简单,首先 Android123 纠正下大家一种错误的措施就是直接在 androidmanifest.xml 的 application 节点中加入 android:launchMode="singleInstance"这句,其实这样将不会起到任何作用,Apps 内部维护的历史栈作用于 Activity, 我们必须在 activity 节点中加入 android:launchMode="singleInstance" 这句才能保证单实例,当然一般均加在主程序启动窗口的 Activity。 2. px 像素怎样转为 dip 设备独立像素: 近来有网友问怎样将 px 像素转为 dip 独立设备像素,由于 Android 的设备辨别率众多,目前主流的为 wvga,而诸多老的设备为 hvga 甚至低端的 qvga,对于兼容性来说使用 dip 无非是比较以便的,由于他和辨别率无关和屏幕的密度大小有关,因此推荐使用。 px= (int) (dip*density+0.5f) //这里 android 开发网提醒大家诸多网友获取 density(密度)的措施存在问题,从资源中获取的是静态定义的,一般为 1.0 对于 HVGA 是恰好的,而对于 wvga 这样的应当从 WindowsManager 中获取,WVGA 为 1.5 这里可以再补充一下 dip,sip 的知识 3. Android 中动态变化 ImageView 大小 诸多网友也许发目前 layout.xml 文献中定义了 ImageView 的绝对大小后,无法动态修改后来的大小显示,其实Android平台在设计 UI 控件时考虑到这个问题,为了适应不一样的 Drawable 可以通过在 xml 的有关 ImageView 中加入 android:scaleType="fitXY" 这行即可,但由于使用了缩放也许会导致目前 UI 有所变形。 使用的前提是限制 ImageView 所在的层,可以使用一种内嵌的措施限制显示。 4. 怎样判断 Android 手机目前与否联网? 假如拟开发一种网络应用的程序,首先考虑与否接入网络,在 Android 手机中判断与否联网可以通过 ConnectivityManager 类的 isAvailable()措施判断,首先获取网络通讯类的实例 ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 使用 cwj...