gpt4 book ai didi

java - 在 Android APK 中嵌入版本详细信息

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:02 39 4
gpt4 key购买 nike

我的代码存储在 SVN 版本控制中。我使用 Eclipse 构建我的 Android 应用程序。

在我的应用程序中,我有一个关于框。我想在此显示正确的源代码管理修订版/标签/任何内容。

有没有一种方法可以自动执行此操作,以便我在 about-box 中的版本字符串始终正确,或者这是我每次提交时都必须手动编辑的内容?

感谢有关 $keywords$ 的早期答案。

将 SVN 属性 svn:keywords 设置为 Rev 会在我每次提交时扩展一个 private String m_svn_rev = "$Rev:$" 那个文件。

SVN 是一个文件版本控制系统。

这反而让我想知道我是否可以以某种方式预处理 Android 构建中的某些文件以注入(inject) svnversion 输出?

最佳答案

一种可能的方法。在您的 AndroidManifest.xml 中,将元数据添加到您的 Activity 以保留修订或您想要使用的任何内容

<activity android:name="SampleActivity">
<meta-data android:value="$Rev: 164 $" android:name="com.example.version" />
</activity>

然后在你的 Activity 中

try {
final ActivityInfo ai = getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
final String version = (String)ai.metaData.get("com.example.version");
System.out.println("version: " + version);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

您可能还想在 list 中设置 android:versionName="$Rev$"

要在 android:versionCode 中自动增加版本号并提交 AndroidManifest.xml 有多种选择,使用 mavenant 可能是替代方案,但让我们使用 Eclipse 和 ADT 来实现。

首先,向您的项目添加一个构建器(我的项目 -> 属性 -> 构建器)

alt text

此构建器应使用项目的 AndroidManifest.xml 作为参数调用 android-increment-manifest-version

alt text

android-increment-manifest-version 脚本类似于

#! /bin/bash
# android-increment-manifest-version:
# increment the version number found in the AndroidManifest.xml file
# (android:versionCode="n") in place and commit it to subversion.
#
# Copyright (C) 2010 Diego Torres Milano - http://dtmilano.blogspot.com

usage() {
echo "usage: $PROGNAME AndroidManifest.xml" >&2
exit 1
}

PROGNAME=$(basename $0)

if [ "$#" -ne 1 ]
then
usage
fi

MANIFEST="$1"

perl -npi -e 's/^(.*android:versionCode=")(\d+)(".*)$/"$1" . ($2+1) . "$3"/e;' $MANIFEST
svn ci -m "Version incremented" $MANIFEST

关于java - 在 Android APK 中嵌入版本详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2162043/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com