編輯:關於Android編程
最近在處理SD卡的讀寫問題,本地Elipse能跑的程序提交到服務器上的時候,報錯,找不到import的類,還有一些方法也是找不到,利用sourceInsight搜了源碼發現都是用了@hide標記的類和方法。
/**
* Description of a storage volume and its capabilities, including the
* filesystem path where it may be mounted.
*
* @hide
*/
public class StorageVolume implements Parcelable {
進入正題,當我們的程序中需要使用到這些方法才能實現我們的功能的時候,我們可以有三種方法去實現。
1、直接將@hide標記去掉,將重新編譯了的android.jar包換掉;
不過強烈的建議不要這樣做,別人隱藏起來的類或者方法肯定是不安全的,如果你把@hide放出來可能引起一些程序不可預知的錯誤。
2、利用反射機制使用@hide方法,這種方法在網上看到一篇不錯的,簡單易懂,要深入的自己再到網上搜
www.2cto.com
3、修改系統文件
3.1修改android.mk文件
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_JAVA_LIBRARIES := android-support-v13
LOCAL_STATIC_JAVA_LIBRARIES += android-ex-camera2-portability
LOCAL_STATIC_JAVA_LIBRARIES += xmp_toolkit
LOCAL_STATIC_JAVA_LIBRARIES += glide
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_SRC_FILES += $(call all-java-files-under, src_pd)
LOCAL_SRC_FILES += $(call all-java-files-under, src_pd_gcam)
LOCAL_RESOURCE_DIR +=
$(LOCAL_PATH)/res
$(LOCAL_PATH)/res_p
include $(LOCAL_PATH)/version.mk
LOCAL_AAPT_FLAGS :=
--auto-add-overlay
--version-name $(version_name_package)
--version-code $(version_code_package)
LOCAL_PACKAGE_NAME := Camera2
#LOCAL_SDK_VERSION := current
LOCAL_CERTIFICATE := platform
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
LOCAL_PROGUARD_ENABLED := disabled
LOCAL_JNI_SHARED_LIBRARIES := libjni_tinyplanet libjni_jpegutil
include $(BUILD_PACKAGE)
include $(call all-makefiles-under, $(LOCAL_PATH))
將紅色的注釋掉。LOCAL_SDK_VERSION 用於指定該APK項目所需的SDK版本,current代表了當前android源碼的版本,如果注釋掉就會使應用程序可以訪問被@hide的api
3.2將LOCAL_SDK_VERSION 注釋掉之後提到服務器編譯出現了代碼混淆錯誤。這個時候可以在android.mk文件中將LOCAL_PROGUARD_ENABLED := disabled加上。LOCAL_PROGUARD_ENABLED := disabled不使用代碼混淆的工具進行代碼混淆,如果不設置,默認使用LOCAL_PROGUARD_ENABLED := full.即將該工程代碼全部混淆。
Android使用Dialog風格彈出框的Activity
在Android中經常會遇到需要使用Dialog風格彈出框的activity,首先我們可能會首先想到的是在XML布局文件中設置android:layout_height=
View的滑動沖突
View的滑動沖突指的是當有內外兩層View同時可以滑動的時候,這個時候就會產生滑動沖突。那麼應該如何解決滑動呢,其實要用到View的事件分發機制。View的滑動沖突主要
Android View框架總結(七)View事件分發機制
View布局告一段落,從本篇開始View事件相關分析,今天分析的是View的事件分發機制(PS:本篇文章中源碼均是android 6.0,請知曉)View 事件的分發機制
android學習十二(android的Content Provider(內容提供器)的使用)
文件存儲和SharePreference存儲以及數據存儲一般為了安全,最好用於當前應用程序中訪問和存儲數據。內容提供器(Content Provider)主要用於在不同的