您的位置:首页 > 移动开发 > Android开发

android 4.4 高通平台开发笔记

2016-07-22 14:47 453 查看
ubuntu 版本 12.04     android 版本 4.4    高通平台

2014.12.17

1、添加系统属性:

可以直接修改手机里面的文件 /system/build.prop ,如果是pull出来修改后再push进去,build.prop的文件权限应该从644变成744,所以要把权限修改回644再重启,否则重启不了,只能重新刷升级包。

如果需要在编译阶段就修改系统属性,要在build文件夹里面修改相应的文件,比如 build/tools/buildinfo.sh,或 build/core文件夹里面的 .mk文件

也可以在android/device/qcom/(product)/system.prop 里修改

在手机的shell里:查看属性getprop、设置属性setprop。

2、linux文件权限:

 wrx 对应 124

2014.12.21

1、安装virtualbox虚拟机:

下载对应的virtualbox虚拟机和增强功能包。

安装虚拟机和win7系统。

安装增强功能包,设备--安装增强功能--选择功能包安装(如果没反应,直接双击增强功能包),

然后在虚拟机系统里面打开出现的CD驱动器,现在可以共享文件夹了。

增加usb支持,

添加usbfs 用户组(virtualbox 装完成后会有 vboxusers 和vboxsf )

sudo groupadd usbfs 

查看新添加的用户组

cat /etc/group

添加linux用户到vboxusers、usbfs这个两个组中

sudo adduser jin vboxusers

sudo adduser jin usbfs

修改/etc/fstab文件,添加如下内容:

none /sys/bus/usb/drivers usbfs devgid=802,devmode=664 0 0

重启,usb功能添加成功。

2、修改主文件夹里文件的名称为英文,

export LANG=en_US

xdg-user-dirs-gtk-update

epxort LANG=zh_CN

2014.12.25

去掉eclipse 自带的Git :

直接将安装目录/plugin 里的git全删了。

用eclipse做android rom 开发,eclipse自带的git太卡了,找了很久不知道怎么解决问题,直接暴力删了,实在是太烦人了。

2015.1.18

1、led灯

上层实现:

powermanagersevice.java  ->  lightsservice.java -> JNI com_android_server_LightsService.cpp

中间层实现:

hardware/qcom/display/liblight/lights.c

hardware/libhardware/inlclude/hardware/lights.h

可以直接在shell里用echo 对/sys/class/leds/red(blue/green)/brightness 附大于0的值,0为关闭

2、开关机动画、声音

将图片压缩包和音频文件放在 /data/local (将local的权限改为777,或其他可用权限)或 system/media/bootanimation 里

添加服务

system/core/rootdir/init.rc

代码:

frameworks/base/cmds/bootanimation

3、在源码里添加现有jar包
........

LOCAL_STATIC_JAVA_LIBRARIES := libmylib

include $(BUILD_PACKAGE)

include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libmylib:jarname.jar 

include $(BUILD_MULTI_PREBUILT)

2015.1.22

1、setting 里的system update,选择升级包的路径后广播给 MasterClearReceiver接收,然后调用RecoverySystem.installPackage ,由RecoverySystem重启并启动Recovery,要注意的是system update获取的SDcard路径是 /storage/sdcard0  或者 /storage/sdcard1,而Recovery里sdcard的路径直接是 /sdcard ;system update获取的内置存储路径是 /storage/emulated/0
 或者 /storage/sdcard1,而Recovery里sdcard的路径直接是 /sdcard1 

2015.1.30

1、往framework/base/core/res 里添加资源,需要在public.xml 里添加相应的项目 ,后面的id 必须是最后一个同类型的资源的id的下一个id。

例如:添加一个string ,最后一个string的id 是0x012345 ,那么新添加的string的id就是0x012346
添加完成后编译res ,然后再编译 base。

2015.3.12

ubuntu 禁止自动弹出文件夹

gsettings set org.gnome.desktop.media-handling automount-open false

2015.3.13

1、广播在开机时有延迟

可以增大ro.config.max_starting_bg的值,但会有其他影响,也可以在方法ActiveServices.hasBackgroundServices 里 mMaxStartingBackground + additionBgServiceNum 的后面 + 1

path:LINUX/android/frameworks/base/services/java/com/android/server/am/ActiveServices.java

2015.5.5

在Recovery 里添加内置存储里进行Sdcard升级的支持

要在内置存储里进行Sdcard升级,就需要将内置存储挂载上来,查看device/qcom/msm8610/recovery.fstab就会看到data这块分区已经被挂载了,而内置存储的路径就是 /data/media/0,所以剩下的只需参照外置Sdcard做修改就行了。

需要修改的文件:

bootable/recovery/default_device.cpp

bootable/recovery/device.h

bootable/recovery/recovery.cpp

修改Recovery的字体大小

Recovery可以从两种字体文件读取字体大小的信息:bootable/recovery/fonts里面的两个png文件,bootable/recovery/minui里面的font_10x18.h

png文件是在build/core/Makefile里根据设备分辨率进行选择,而是选择font_10x18.h还是选择png文件是在bootable/recovery/minui/graphics.c的gr_init_font方法里进行判断。

这两种字体文件是用软件来生成,之前试着用软件来生成,但没成功,这两种字体文件的使用方法没仔细去了解。

2015.7.16

1、屏幕适配

density=ppi=dpi;

res/xxx-hdpi         当density为240时,使用此目录下的资源
res/xxx-mdpi        当density为160时,使用此目录下的资源
res/xxx-ldpi          当density为120时,使用此目录下的资源

layout-swxxxdp,xxx=160*pix/ppi
,pix = wight。

2、查看android device 里面app的数据库

sqlite3 /data/data/com.android.providers.settings/databases/settings.db

select * from system;

UPDATE system SET value = '6000000' WHERE name = 'screen_off_timeout';

UPDATE system SET value = '-1' WHERE name = 'screen_off_timeout' ;

insert into system ('name','value') values ('lock_pattern_autolock',1);

.exit

2015.7.28

1、appwidget 更新

系统更新时 onUpdate 和 onReceive 都执行,自定义添加的 action 只执行 onReceive 。

每次更新都需要重新初始化所有变量,在 onReceive 里面获取 AppWidgetManager : AppWidgetManager.getInstance(mContext)

2、static 使一个变量或方法变成全局

每一个实例都使用同一个static 变量或方法。

static 在appwidget 中很有必用,避免每次都初始化一次所有变量,特别是使用到线程的时候,

需要一个static 变量停止线程。

2015.12.24

1、git仓库的创建

新建文件夹demo.git,然后在文件夹里执行git init -bare。

或者将现有工程里面的.git文件夹,拷贝出来直接用,重命名为demo.git,或者将.git文件夹拷贝到demo.git文件夹下,

然后修改config文件里的bare 为true。在工程里面这个值为false,在仓库里为true。

2、锁核锁频

锁核:

修改/sys/module/msm_thermal/core_control/cpus_offlined 的值,用二进制表示开关,0为开1为关,比如四核:0 = 0000为4个cpu全开,14 = 1110为只开一个cpu。

锁频:

修改/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 的值,四核的时候路径里的cpu0可以是cpu0~cpu3,只修改一个cpu的频率,其他的cpu都会自动同步修改。

参考值:1.1G:1094400    1G:1000000   0.9G:900000   0.8G:800000  等

3、音量键音量调节功能屏蔽:

frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindow.java

将KeyEvent.KEYCODE_VOLUME_UP 和 KeyEvent.KEYCODE_VOLUME_DOWN 相关代码注释掉。

4、apk获取系统属性

SystemProperties.get 可以获取几乎全部系统属性,但需要在AndroidManifest.xml 里添加android:sharedUserId="android.uid.system",并且需要系统签名,System.getProperties只能获取手机信息相关的属性。   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: