android 如何引用 so 檔案
先了解一下so的架構,各個CPU所需的目錄如下, 每個目錄都有一個一樣的so檔案, 這些目錄都放在 libs 的目錄底下.
請在android上加上
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
這樣就可以引用了
先了解一下so的架構,各個CPU所需的目錄如下, 每個目錄都有一個一樣的so檔案, 這些目錄都放在 libs 的目錄底下.
請在android上加上
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
這樣就可以引用了
通常畫面更新前, 需要背景處理的工作, 有時候會耗掉一些時間, 若使用
runOnUIThread 會造成畫面停頓,好像當掉一樣, 此時可以使用AsyncTask處理
class MyAsyncTask extends AsyncTask<Void, Void, Void>{ @Override protected Void doInBackground(Void... params) { // 這裡處理背景工作 return null; } @Override protected void onPostExecute(Void aVoid) { // 這裡處理畫面元件(這邊會耗時,所以盡量只處理簡單的畫面資料 } }
-dontskipnonpubliclibraryclasses
編輯proguard-rules.pro
-dontobfuscate
-forceprocessing
-optimizationpasses 5
-keep class * extends android.app.Activity
-assumenosideeffects class android.util.Log {
public static *** d(…);
public static *** v(…);
}
buildTypes {
確認 build.gradle 裡面的 buildTypes 屬性
release {
minifyEnabled true
shrinkResources false
proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), ‘proguard-rules.pro’
}
}
除了設定以下policy外,
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
還需要進行額外設定
try{
Method m = StrictMode.class.getMethod("disableDeathOnFileUriExposure");
m.invoke(null);
}catch(Exception e){
e.printStackTrace();
}
https://www.norio.be/android-feature-graphic-generator/
今天寫了一個簡單的純文字筆記APP, google play console要求要有一個宣傳的圖1024×500大小
用上面的連結很方便就能做出來.
StrictMode用來限制App存取disk或是網路, 若要全部開放,可以在主要activity時加上
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy);
ps. android開發網站並不建議這樣做
若出現
java.lang.RuntimeException: Can’t create handler inside thread that has not called Looper.prepare()
需要在出現該問題的物件(Toast或是Dialog), 前面加上Looper.prepare(),後面加上 Looper.loop();