Android5.0系统 知识点总结

      人生最可怕的,是比你优秀的人却比你更努力。
      永远不要觉得别人望尘莫及,要做的,只是每天进步一点点, 加油!

一、编译指令
1、进入项目工作目录
2、修改工程文件权限 chmod 777 -R ./(*)
3、更新环境变量
    source build/envsetup.sh
4、执行指令:lunch full_gxq6580_we_l-eng,选择工程名
5、编译工程指令:make -j8 2>&1 | tee build.log
6、若要编译模块,则使用
      mmm路径名
      例如编译Launch3
      mmmpackages/apps/Launcher3
7、若要打包systemimage
      makesystemimage

注:若开启一个新的终端,一定要首先运行3、4指令,然后再使用其他指令

二、adb的使用
1、把adb_usb.ini文件放在隐藏目录.android下;
2、使用如下指令开启adb
      sudo adbkill-server
      sudo adbstart-server
      sudo adbdevices
3、使用adb push 指令时,需要在指令前加sudo,如:
      sudo adbpushout/target/product/gxq6580_we_l/system/app/Launcher3/Launcher3.apk
三:
Android5.1现在不能向目录framework/base/corre/res下添加资源,若要添加请添加到vendor/mediatek/proprietary/frameworks/base/res目录,然后在framework中就可以访问了,下面以添加default_lockscreen_wallpaper.jpg为例,说明如何添加资源;
 
例如:添加default_lockscreen_wallpaper.jpg图片
1、把图片放在vendor/mediatek/proprietary/frameworks/base/res/res/drawable-xhdpi目录下
2、注册资源id,有两种方法
      a、若在vendor/mediatek/proprietary/frameworks/base/res/res/values/public.xml注册资源id,该id必需是按照顺序一直累加,
              资源在系统framework框架、以及app都可以访问;
      b、若在vendor/mediatek/proprietary/frameworks/base/res/res/values/symbols.xml注册资源id,资源只能在framework框架层可以访问;
四:
  Android 5.1 系统上添加APK步,以添加FactoryMode为例

    1.在/device/gxq/gxq6580_weg_l/ProjectConfig.mk中添加APK 开关,并设置ZF_FACTORYMODE_SUPPORT=yes
    2.在/packages/app/目录下新建FactoryMode目录
    3.在/device/mediatek/mt6580/device.mk文件末尾添加FactoryMode编译选项
            PRODUCT_PACKAGES+=FactoryMode
五:宏控制的路径
      android.os.FeatureOption
六:解决问题:默认为usb选项为MTP存储(U730)
涉及文件:
device/gxq/gxq6580_we_l/system.prop
device/gxq/gxq6580_weg_l/system.prop
packages/apps/Settings/src/com/mediatek/settings/deviceinfo/UsbSettingsExts.java
七:解决问题:修改音频参数
涉及文件:
vendor/mediatek/proprietary/custom/common/cgen/cfgdefault/audio_ver1_volume_custom_default.h
vendor/mediatek/proprietary/custom/gxq6580_we_l/cgen/inc/Custom_NvRam_LID.h
八:解决问题: 蓝牙随机生成地址(下载或者恢复工厂后,第一次打开蓝牙时随机生成一个地址,其他情况不会随机生成地址)
涉及文件:
vendor/mediatek/proprietary/external/nvram/libcustom_nvram/CFG_file_info.c
九:解决问题:充电显示100%的时候,仍然还在充电的问题
涉及文件:
kernel-3.10/drivers/power/mediatek/battery_common.c
十:解决问题: 开机led灯不亮
涉及文件:
device/mediatek/common/sepolicy/file.te
device/mediatek/common/sepolicy/file_contexts
device/mediatek/common/sepolicy/platform_app.te
device/mediatek/common/sepolicy/property.te
device/mediatek/common/sepolicy/property_contexts
device/mediatek/common/sepolicy/radio.te
device/mediatek/common/sepolicy/surfaceflinger.te
device/mediatek/common/sepolicy/system_app.te
external/sepolicy/bootled.te
十一:关机充电路径
  U530/bootable/bootloader/lk/dev/logo    图片
  U530/vendor/mediatek/proprietary/external/libshowlogo  --代码
十二:在3G网络下,信号强度0为<=-109dbm,1为<-103,2为<-97,3为<-89,4为>=-89(U560)
      vendor/mediatek/proprietary/frameworks/base/packages/FwkPlugin/src/com/mediatek/op/telephony/DefaultServiceStateExt.java
十三:相应模块状态栏颜色的改变(Android 5.0 以上系统)
      1:在SystemUi状态栏改为透明色(颜色值改为透明)
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/BarTransitions.java
                #00000000
                    #00000000
      2:frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindow.java
                  if (!mIsFloating )
      3:模块的配置文件找到相应的style,在style中添加@color/xxx属性
      注:ActivityManager.isHighEndGfx()是和手机的硬件配置有关系的,绘图状态栏颜色会消耗更多的内存,所以低配置的手机会把ActivityManager.isHighEndGfx() == false;        
      colorPrimary对应ActionBar的颜色。
      colorPrimaryDark对应状态栏的颜色
      colorAccent对应EditText编辑时、RadioButton选中、CheckBox等选中时的颜色。

十四:解决问题:添加自动生成imei
涉及文件:
device/gxq/gxq6580_we_l/ProjectConfig.mk
device/gxq/gxq6580_weg_l/ProjectConfig.mk
device/mediatek/common/sepolicy/radio.te
device/mediatek/mt6580/device.mk
vendor/mediatek/proprietary/packages/apps/EngineerMode/AndroidManifest.xml
vendor/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/DefaultImeiOperation.java
vendor/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/EngineerModeReceiver.java
vendor/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/GPRS.java

十五:修改APN参数
      vendor/mediatek/proprietary/frameworks/base/telephony/etc/apns-conf.xml
十六:Android.mk 详解
      http://www.cnblogs.com/wainiwann/p/3837936.html
十七:查看屏幕的分辨率
      C100/packages/apps/Launcher3/src/com/android/launcher3/Launcher.java
      floatdensity = getResources().getDisplayMetrics().density;
      Log.i("lyj"," density ="+density+ "width="+getResources().getDisplayMetrics().widthPixels+" height="+getResources().getDisplayMetrics().heightPixels);
十八:自动生成IMIE 号
      vendor/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/DefaultImeiOperation.java
十九:system分区大小修改(U1652H)
      device/mediatek/build/build/tools/ptgen/MT6580/partition_table_MT6580.xls
二十:验证自适应(内置虚拟键)
    如果想验证自己修改的模块是否支持自适应了可以去YourProject/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
    里面将mHasNavigationBar的值修改来验证:mHasNavigationBar =true,虚拟按键显示;mHasNavigationBar = false,虚拟按键隐藏
      编译frameworks/base/policy,然后push到手机验证。
二十一:ADB常用的命令
      查找手机安装应用的包名:adb shell pm list packages -f
      查看系统盘符:adbshell df
      查看Log 1:adbshell 2: logcat | grep "abc"
      删除应用:1:adbremount  2:adb shell  3:cdsystem/app    4:rm *.apk
      安装APK: adbinstall -r *.apk  或者 adb push*.apk  /system/app
二十二:android Material Design 动画效果
      //波纹有边界
      android:background="?android:attr/selectableItemBackground "
      //波纹超出边界
      android:background="?android:attr/selectableItemBackground Borderless"
      直接在控件属性上面加上即可
二十三:
   <integer name="def_screen_off_timeout">600000</integer>设置关屏超时时间的默认值
   <integer name="def_screen_brightness">102</integer> 设置亮度的默认值
   <bool name="def_install_non_market_apps">false</bool>设置是否允许安装非Market应用程序的默认值
  这些设置的默认值都是由frameworks中的SettingsProvider从数据库中读取的frameworks/base/packages/SettingsProvider/res/values/defaults.xml这个文件就是用来存储
二十四:修改屏幕锁:
  (1)
  frameworks/base/packages/SettingsProvider/res/values/defaults.xml
  <integer name="def_screen_off_timeout">60000</integer>
  60000改成想要的时间如果是不锁为-1
  (2)
  frameworks/policies/base/phone/com/android/internal/policy/impl/KeyguardViewMediator.java
  private boolean mExternallyEnabled = true;
  将其修改成false
  这样更改就不会再进入休眠状态了


你可能感兴趣的:(android,android5.0)