AndroidManifest.xml 注意事项

640?wx_fmt=png

target SDK version

        Android Runtime和Dalvik虚拟机会根据target SDK verison决定是否在【兼容模式】下。所谓兼容模式,就是关闭了新版本中各种新机制和体验优化的状态。targetSdkVerison如果设置很低,就等于是关闭了所有高版本的新特性和机制,包括屏幕自适应、硬件加速等。

        为了各个Android版本的兼容性,及时使用到新特性,targeSdkVerison应随Android最新版本的发布而持续提高,以保证在各个Android版本的设备上都能获得完整的体验。

        有时我们会发现这样的警告:Not targeting the latest versions of Android;compatibility modes apply.Consider testing and updating this version.Consult the android.os.Build.VERSION_CODES javadoc for details.去掉警告你只要把l例如android:targetSkVersion=“17”里面的17改为最新版本就行了

<application>中的debuggable=“true”

        当debuggable打开时,除了更容易暴露在攻击下,SDK tools(包括ProGuard)也不会进行一些针对发布版本可以进行的优化,比如移除dex包中的代码调试信息(符号名,行号等),移除DEBUG和VERBOSE级别的日志输出。这些对App发布版本的容量和性能都有直接的影响。

        Avoid hardcoding the debug mode;leaving it out allows debug and release builds to automatically assign one

<uses-permission>写在<application>之后

        这些做,表面上看没有什么问题,但却埋下了一些<application>内部属性正确生效的隐患。

The <application> tag should appear after the elements which declare which version you need,which features you need,which libraries you need,and so on. In the past there hava been subtle bugs(such as themes not getting applied correctly) when the <application> tag appears before some of these other elements,so it's best to order your manifest in the logical dependency order.

配置两个主Activity

        在AndroidManifest.xml文件里可以配置两个主Activity如下:

 <activity
        android:name=".activity.StartActivity"
        android:configChanges="orientation|keyboardHidden"
        android:launchMode="singleTop"
        android:theme="@android:style/Theme.Translucent"
        android:windowSoftInputMode="stateHidden|adjustUnspecified" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
   <activity
        android:name=".activity.StartActivity1"
        android:configChanges="orientation|keyboardHidden"
        android:launchMode="singleTop"
        android:theme="@android:style/Theme.Translucent"
        android:windowSoftInputMode="stateHidden|adjustUnspecified" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

        这时在手机的程序任务列表会生成两个启动task图标,分别对应上面定义的两个主Activity

看完本文有收获?请转发分享给更多人


欢迎关注“互联网架构师”,我们分享最有价值的互联网技术干货文章,助力您成为有思想的全栈架构师,我们只聊互联网、只聊架构,不聊其他!打造最有价值的架构师圈子和社区。

本公众号覆盖中国主要首席架构师、高级架构师、CTO、技术总监、技术负责人等人 群。分享最有价值的架构思想和内容。打造中国互联网圈最有价值的架构师圈子。

  • 长按下方的二维码可以快速关注我们

  • 640?wx_fmt=jpeg

    如想加群讨论学习,请点击右下角的“加群学习”菜单入群

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值