Android 系統簽名(踩坑記)

Android 系統簽名
1、AndroidManifest加上:android:sharedUserId=“android.uid.system”
android代碼就不用改其他的,剩下的就是使用第三方簽名。比如使用ftp地址簽名(我的項目使用的就是上傳到ftp文件系統中,系統自動給你簽名、有些公司的加密文件涉及安全性較高,不能直接給你發加密文件.keyStore。甩給你一個ftp地址)

2、注意:簽名可以二次簽名,(可以在android studio先進行簽名,然後打包apk,給第三方系統簽名),但是不用加固(加固後再系統簽名安裝成功後打開應用會報錯“應用停止”)

3、設置Toast的時間需要注意:Toast.LENGTH_LONG最好不要使用,一般Toast.LENGTH_SHORT就行了。(因爲有可能吐司持續在窗口顯示)

4、系統簽名之後的apk只能安裝在對應系統的設備上。

另外,加入你已經拿到加密文件,可以點擊 “實現簽名的三種方式”

安利一波經驗

1、如何在Thread中使用Toast?

一般如果不是在主線程中又開啓了新線程的話,一般都會碰到這個問題 。
原因是在創建新線程的時候默認情況下不會去創建新的MessageQueue。

注意:Toast 顯示需要出現在一個線程的消息隊列中…

解決辦法:

//改寫代碼之前是


//改寫代碼之前是
new Thread(new Runnable(){
	@Override
	public void run() {
			、、、
			Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_LONG).show();
			、、、
	}
}).start();

//改寫代碼之後

//改寫代碼之後
new Thread(new Runnable(){
	@Override
	public void run() {
		Looper.prepare();
		、、、
	   Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_LONG).show();
		、、、
        Looper.loop();
	}
}).start();

2、靜默自動安裝應用的程序
報錯信息:

SecurityException: Neither nor current process has android.permission.INSTALL_PACKAGES

原因:代碼裏面需要權限
uses-permission android:name=“android.permission.INSTALL_PACKAGES”

需要有系統應用開發權限,現在尚沒有方法做成第三方應用採用靜默安裝的。
需要將androidmanifest.xml中將userid改成packageinstaller即可。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.onekey"
    android:versionCode="1"
    android:versionName="1.0" 
    android:sharedUserId="android.uid.packageinstaller">
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章