rom定制笔记(一)

1.怎么开启mass_storage

(5.1上的方法)当然首先得有调用系统API的权限,然后
UsbManager的setCurrentFunctions(UsbManager.USB_FUNCTION_MASS_STORAGE, true)
StorageManager的enableUsbMassStorage();

2.怎么预装sogouInput

1.将sougouinput.apk放在apps目录底下。然后需要编写一个mk文件,让编译系统能识别

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := SogouInput
LOCAL_MODULE_TAGS := optional
#兼容
LOCAL_MULTILIB :=32

LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
#apk文件用APPS, 并且 会检查 是否是apk文件,动态库so文件用SHARED_LIBRARIES ,bin文件用EXECUTABLES,其他文件 用ETC
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#若有so,使用LOCAL_PREBUILT_JNI_LIBS列出所有so的路径,不要忘记使用@。@标识符会将apk中的so抽离出来build进apk同级目录下的lib文件夹中
LOCAL_PREBUILT_JNI_LIBS:= \
@lib/armeabi/libbutterfly.so \
@lib/armeabi/libNinepatch.so \
@lib/armeabi/libsogouupdcore.so \
@lib/armeabi/libweibosdkcore.so
#表示 这个apk已经签过名了,系统不需要再次 签名
LOCAL_CERTIFICATE := PRESIGNED

include $(BUILD_PREBUILT)

当然,如果想把搜狗设置为默认输入法,可以参考:
http://blog.csdn.net/wlwl0071986/article/details/47680807

3.keyguard

a.怎么实现的下滑只出咱们自己的下拉界面?

android默认手从屏幕顶部下滑的时候怎么出来一个界面?我记得葛大爷说的是点击到了状态栏?
怎么屏蔽的系统的?

找到了!
frameworks/base/core/res/res/values/dimens.xml里面
status_bar_height的高度被设置成了零。
那也就是说安卓本来下拉菜单是点击了状态栏才出来的,现在高度设置成了0,点击不到,所以不会响应任何事件,就相当于屏蔽了。

咱们自己的,就是一个service.不断监听着下滑的动作。

keyuard原理:http://blog.csdn.net/ocean2006/article/details/8079457

4.怎么添加自己的应用作为系统应用?

基本和2类似,但是需要注意的是

LOCAL_CERTUFICATE := platform
LOCAL_PRIVILEGED_MODULE := true

关于LOCAL_CERTUFICATE
http://www.cnblogs.com/senior-engineer/p/4775316.html
解释的非常好

与这个相应对应的manifest中需要设置

android:sharedUserId=”android.uid.system”。这两者都有了,就可以称得上系统应用了,各种限制级API,隐藏API随便调用,理论上来说可以实现任何功能了。
LOCAL_PRIVILEGED_MODULE//声明app需要放在/system/priv-app下。

5.实现自己的锁屏应用关键点

看我这个帖子:
http://blog.csdn.net/bberdong/article/details/69257758

6.带源码的系统应用中加入jar包

我碰到的情况是加入一个gson.jar。android-support都是系统自带的,无需处理,而gson就比较麻烦了。
可以用下面的方法来处理。

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-java-files-under,src) \
    src/com/android/content/pm/IPackageDataObserver.aidl \
    src/com/android/os/IPowerManager.aidl \
    src/com/btime/binder/ITrafficStateSync.aidl \
    src/com/btime/binder/ITrafficStateCallback.aidl
#step1
LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 \
                               android-support-v13 \
                               gson-2.2.4
#only use in debug mode
#LOCAL_DEX_PREOPT := false

LOCAL_PROGUARD_ENABLED := disabled
LOCAL_PACKAGE_NAME := Settings

LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true

include $(BUILD_PACKAGE)
#step2
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
    gson-2.2.4:libs/gson-2.2.4.jar
include $(BUILD_MULTI_PREBUILT)

include $(call all-makefiles-under,$(LOCAL_PATH))

必须有step2的prebuilt过程,要不然还是报错。还有啊,这一段
不能放在include $(BUILD_PACKAGE)前面include $(CLEAR_VARS)把之前的设置都清掉了,最终编出来的结果只有一个gson的jar包。

猜你喜欢

转载自blog.csdn.net/bberdong/article/details/62423026
ROM
今日推荐