本文目錄一覽:
- 1、用電腦如何修改apk版本號?
- 2、java 獲取已安裝的程序版本號,在控制面板中可以看到的版本號,怎麼獲取呢?
- 3、java生成Sqlite數據庫,下載到Android設備上,報錯,提示版本號不對
- 4、Java如何生成版本號?比如0001 0002 0002
- 5、如何自定義和查看java程序版本號
- 6、用java或者用javascript獲取當前應用的版本號的代碼。
用電腦如何修改apk版本號?
如何修改apk文件[apk文件修改、圖標、美化、去廣告]完全教程
一、首先搭建jdk環境。
下載完後,點擊安裝。然後設置運行環境參數:
用鼠標右擊“我的電腦”-屬性-高級-環境變量
系統變量-新建-變量名:JAVA_HOME 變量值:D:\Program Files\Java\jdk1.7.0(這是我的安裝路徑這個不是固定的,比如你安裝到C:\Program Files,就填C:\Program Files\Java\jdk1.7.0)
系統變量-編輯-變量名:Path 在變量值的最前面加上:%JAVA_HOME%\bin;(若已經有Path項,無須另外新建,直接在後面加,但需用;與前面已有的項分隔開)
系統變量-新建-變量名:CLASSPATH 變量值:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
最後測試下環境變量是否設置成功
點開始菜單-運行-在這裡輸入cmd-回車-輸入javac
1.如果出現如下信息:
用法:javac 選項 源文件
其中,可能的選項包括:
-g 生成所有調試信息
-g:none 不生成任何調試信息
-g:{lines,vars,source} 只生成某些調試信息
-nowarn 不生成任何警告
-verbose 輸出有關編譯器正在執行的操作的消息
-deprecation 輸出使用已過時的 API 的源位置
-classpath 路徑 指定查找用戶類文件的位置
-cp 路徑 指定查找用戶類文件的位置
-sourcepath 路徑 指定查找輸入源文件的位置
-bootclasspath 路徑 覆蓋引導類文件的位置
-extdirs 目錄 覆蓋安裝的擴展目錄的位置
-endorseddirs 目錄 覆蓋簽名的標準路徑的位置
-d 目錄 指定存放生成的類文件的位置
-encoding 編碼 指定源文件使用的字符編碼
-source 版本 提供與指定版本的源兼容性
-target 版本 生成特定 VM 版本的類文件
-version 版本信息
-help 輸出標準選項的提要
-X 輸出非標準選項的提要
-J標誌 直接將 標誌 傳遞給運行時系統
恭喜,你的Java環境變量配置成功了!
2.如果出現:
‘javac’ 不是內部或外部命令,也不是可運行的程序
或批處理文件。
說明這Java環境變量配置出錯了,仔細檢查下吧!
二、下載APKTools工具包(裡面包含:APKTools反編譯工具、APKSign簽名工具)。下載Notepad代碼編輯器(可以修改smali和xml文件)。
在修改之前首先對APK文件內部結構有個了解:
AndroidManifest.xml 程序全局配置文件
classes.dex 這是Dalvik字節碼
resources.arsc 編譯後的二進制資源文件
META-INF\ 該目錄下存放的是簽名信息
res\ 該目錄存放資源文件
assets\ 該目錄可以存放一些配置文件
對應這些文件和目錄做些基本的注釋和介紹:
AndroidManifest.xml
該文件是每個應用程序都必須定義和包含的文件,它描述了應用程序的名字、版本、權限、引用的庫文件等等信息。需要解包後才能加以閱讀。
classes.dex文件
classes.dex是java源碼編譯後生成的java字節碼文件。dex是Dalvik VM executes的全稱,即Android Dalvik執行程序,並非Java ME的字節碼而是Dalvik字節碼。
resources.arsc
編譯後的二進制資源文件。
META-INF目錄
META-INF目錄下存放的是簽名信息,用來保證apk包的完整性和系統的安全。在eclipse編譯生成一個apk包時,會對所有要打包的
java 獲取已安裝的程序版本號,在控制面板中可以看到的版本號,怎麼獲取呢?
eclipse是綠色軟件 可直接刪除文件夾,如果你下載時是全部安到g盤,那麼c盤的應該是其他軟件的,不過看你那圖是在c有殘留,看到sun公司的都是java,環境變量就隨便你了,以後可能再用就不用改
java生成Sqlite數據庫,下載到Android設備上,報錯,提示版本號不對
要是手機java軟件的話,就得需要手機支持安裝java軟件,不過一般的手機差不多都能支持,只是版本的不一樣而已···要是你想問java學了之後如何使用的話,java還是比較擅長於web網頁的開發和現在流行的安卓技術··
Java如何生成版本號?比如0001 0002 0002
首先還是不太明白你說的這個“生成版本號”是什麼意思,如果只是生成一個自增序列的話
1、如果有oracle數據庫的話可以利用它的序列生成。
2、沒有oracle,用redis也行。
3、沒有數據庫,那就寫個文件來存取吧:
public class Test2 {
public static void main(String[] args) throws IOException {
System.out.println(getSequence(“d:\\test\\sequence.txt”));
setSequence(“d:\\test\\sequence.txt”, “”);
System.out.println(getSequence(“d:\\test\\sequence.txt”));
}
//讀取序列
public static String getSequence(String sequenceFile) throws IOException {
FileInputStream fileInputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
try {
File file = new File(sequenceFile);
fileInputStream = new FileInputStream(file);
inputStreamReader = new InputStreamReader(fileInputStream);
bufferedReader = new BufferedReader(inputStreamReader);
// 按行讀取字符串
String str;
if ((str = bufferedReader.readLine()) != null) {
return str;
}
return null;
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (bufferedReader != null) {
bufferedReader.close();
}
if (inputStreamReader != null) {
inputStreamReader.close();
}
if (fileInputStream != null) {
fileInputStream.close();
}
}
}
//設置序列,如果傳入的序列號為空,則在原序列的基礎上+1
public static void setSequence(String sequenceFile, String sequence) throws IOException {
if (sequence == null || sequence.isEmpty()) {
String oriSequence = getSequence(sequenceFile);
Objects.requireNonNull(oriSequence);
sequence = String.format(“%04d”, Integer.valueOf(oriSequence) + 1);
}
FileOutputStream fileOutputStream = null;
OutputStreamWriter outputStreamWriter = null;
BufferedWriter bufferedWriter = null;
try {
File file = new File(sequenceFile);
fileOutputStream = new FileOutputStream(file);
outputStreamWriter = new OutputStreamWriter(fileOutputStream);
bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write(sequence);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bufferedWriter != null) {
bufferedWriter.close();
}
if (outputStreamWriter != null) {
outputStreamWriter.close();
}
if (fileOutputStream != null) {
fileOutputStream.close();
}
}
}
}
代碼又擠在一起了:
讀序列:
寫序列:
運行結果:
先生成好這個文件:
沖!:
如何自定義和查看java程序版本號
可以在主類中設常量記錄版本號。
然後命令行執行的時候,多送個參數進去(如version之類的),主類中收到此指令則返回版本號信息。
用java或者用javascript獲取當前應用的版本號的代碼。
獲取當前應用的版本號:
private String getVersionName() throws Exception
{
// 獲取packagemanager的實例
PackageManager packageManager = getPackageManager();
// getPackageName()是你當前類的包名,0代表是獲取版本信息
PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0);
String version = packInfo.versionName;
return version;
}
獲取當前系統的版本號:
textView.setText(“Product Model: ” + android.os.Build.MODEL + “,”
+ android.os.Build.VERSION.SDK + “,”
+ android.os.Build.VERSION.RELEASE);
原創文章,作者:JTCKU,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/329079.html