6820部分问题

customize/ customer_cfg 下的文件,  大家更新版本前 也需要同步   相应文件夹的修改
---------------------------------------------
现在 2.3.5 平台上 有些项目会有自动测试、关机充电、连接豌豆夹的时候屏倒了180度的现象,可以参考下tc608的修改下下面的文件:
3rdparty/app/tc608/special/android/bootable/recovery/minui/graphics.c
3rdparty/app/tc608/special/android/external/sprd/alarm/graphics.c
3rdparty/app/tc608/special/android/external/sprd/ charge/minui/graphics.c
3rdparty/app/tc608/special/android/external/sprd/engineeringmodel/engtest/ui/minui/graphics.c
3rdparty/app/tc608/special/android/system/core/adb/framebuffer_service.c
----------------------------------------------
方形锁屏已提交,要用到这个锁屏的项目,需修改对应的SettingsProvider下defaults.xml中的def_lockscreen_type为5
----------------------------------------------
增加彩虹锁屏应用,有需要的可以更改配置,SettingsProvider下defaults.xml中的
def_lockscreen_type修改为4
----------------------------------------------
2.3上pull代码的时候可以用 git pull --rebase
这样代码节点就比较好看点
-----------------------------------------------
各位, 现在下载需要13个文件,7个生成的,一个logo,一个nv,还有其它4个。
2.3.5上现在1NV / ,
download-file下, 已经列出了 6820平台的其它4个文件,请大家发布版本时取这里的文件,8810平台的有些不一样,请黄志松上传下。
开机logo和nv请大家务必都按项目名备份在1NV下, 以免搞错。
另外,目前几个项目 1NV下都备份了 c905(nvm) ,c909(nvm),c910(nvm)文件, 需要修改音频参数时,用这里的文件来生成新的nv。
-------------------------------------------------------
大家改按键灯亮度时,如果发现改了没效果,删除这个文件试试customize/customer_cfg/项目名/proprietary/hw/lights.sprdbp.so
------------------------------------------------------
2.3.5上看make文件, 项目有很多, 但是平台上备份的每个项目的开机logo和 nv ,很多项目都没有
请大家按项目全部上传至1NV文件夹  否则要是请假换个人发版本, 开机logo都找不到, nv也很容易搞错。
------------------------------------------------------
取代码的地址:
git@192.168.10.165:repositories/android235_w1220p12.git
------------------------------------------------------
安装编译环境:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
-----------------------------------------------------
android 安装编译软件网站:
http://source.android.com/source/initializing.html
------------------------------------------------------
java环境变量:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$JAVA_HOME/bin:~/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
------------------------------------------------------
检查自己现在所在的目录:git branch
------------------------------------------------------
检查文件是否发生改变:git status -uno
---------------------------------------------------------
下载文件一共有七个在out/target/product/hsdroid/sps.images.sp6820a_eng目录下
分别为:boot.img,fdl2.bin,recovery.img,system.img,u-boot-256M.bin,u-boot-spl-16k.bin,userdata.img
------------------------------------------------------
每个项目不同屏对应的资源路径知识:查看方法:在customize/customer_cfg/XXX/res/system.prop文件里
lcd_density = 160
120 <---->ldpi
160 <---->mdpi
240 <---->hdpi
编译项目生成的build.prop文件解析:
ro.build.version.sdk=8                          2.2ROM
ro.build.version.release=2.2.1              ROM版本
ro.build.date=三 12月 15 20:41:26 CST 2010                   时区时间CST可以代表4个时区,这个百度一下
ro.build.host=HPA008                              这个好像是机器的CID代码一样,不确定
ro.product.model=Desire HD                   型号
ro.build.description=1.75.1400.4 CL303327 release-keys
ro.build.description=1.75.1400.4 CL303327 release-keys                      内部版本号
ro.sf.lcd_density=240      这个好像和一些软件全屏有关系,调小有些软件不能全屏好像是
# Default network type.                            默认网络类型,貌似是这样
# 0 => WCDMA preferred.
ro.telephony.default_network=0
wifi.interface=eth0
wifi.supplicant_scan_interval=15              WIFI扫描时间
ro.product.cpu.abi=armeabi-v6j                  这个应该是CPU的型号
wifi.supplicant_scan_interval=30             这是WIFI扫描时间
settings.display.autobacklight=1       自动背光默认为开
ro.sf.lcd_density=160                    打开软件全屏大小,不建议改这个,原版界面的,改了你会后悔的。
dalvik.vm.execution-mode=int:jit               打开超频模式
dalvik.vm.heapsize=32m                             虚拟内存
ro.config.msg_notification=F1_New_SMS.ogg           默认信息通知铃声
ro.setupwizard.mode=OPTIONAL          这里是第一次开机的向导,optional是可选!ENABLED为显示,DISABLED为禁止
ro.semc.timescape_keys=Sony_Ericsson_Xperia
debug.sf.nobootanimation=0                     这里是控制开机动画的,0为关闭,1为开启!
ro.config.hwfeature_wakeupkey=3
ro.config.hw_menu_unlockscreen=true
                                                 ——这两个是控制唤醒屏幕的设置,3应该是菜单键
ro.setupwizard.mode=DISABLED                      开机出现的帐号设置向导,ENABLED为显示,DISABLED为禁用,
OPTIONAL为可选
ro.config.ringtone=QuietlyBrilliant.mp3              默认来电铃声
ro.config.notification_sound=Zeta.mp3             默认通知铃声
ro.config.alarm_alert=NewDay.mp3                  默认闹钟铃声
ro.config.hwfeature_wakeupkey=3,修改完成后重启手机,就可用电源键、确认键、挂机键、接听键唤醒屏幕
ro.sf.lcd_density=240  这个是DPI,sense rom根本不要改,改了会后悔的,cm系列rom可以改成200甚至180
ro.build.date=三 12月 15 20:41:26 CST 2010  这个根本不用管,这个是官方ROM的做成的日期
ro.product.locale.language=zh          刷机后默认语言
ro.product.locale.region=CN             刷机后启动的默认语言   这个不是刷机后的默认语言,这个只是强制区域,
也就是出现第一次锁屏还没有连接基站的时候,强制设置区域为zh_CN
刷机后默认语言是在system/customize/default.xml里面改的
ro.config.hw_temperature_warn=true                         这就是论坛上那个温度检测关机的开关
ro.config.lowbattery_shutdown=1                            低电量自动关机
ro.config.hwfeature_wakeupkey=0                           
ro.config.endkeybehavior=true                 关机键行为开启
ro.config.haptic_disable=true                    关闭触感反应
view.touch_slop=15    (触摸屏灵敏度,数值越大越灵敏)
view.minimum_fling_velocity=25  (滑动速度)
view.scroll_friction=0.008  (滑动误差)
# RIL specific configuration.  (特定设置)
red]ro.ril.def.agps.mode=2 (打开AGPS服务支持,可改为ro.ril.def.agps.mode=0  改后能省电但GPS定位速度会变慢)
ro.product.multi_touch_enabled=true    支持多点触摸
ro.product.max_num_touch=2              触摸点为最多2点!
文件一共给修改了5处:
dalvik.vm.heapsize=32m,原来的值是24m,也就是说扩展了单个虚拟机可以使用的内存空间从24M扩展到32M。
debug.sf.hw=1,原来的值是0。这个是启用了硬件GUI渲染。
media.stagefright.enable-meta=true
media.stagefright.enable-scan=true
media.stagefright.enable-http=true 原来这3个设定都是false,也就是启用了stagefright引擎,但没有设置
media.stagefright.enable-player=true
-------------------------------------------------------------
输出log到指定文件: adb logcat +(所指定的文件夹下的文件)
------------------------------------------------------------
将apk下载到手机里: adb push 所要下载的apk /system/app
-------------------------------------------------------------
在当前目录下查开带字符串的文件: 到当前目录下 #grep -r string ./*  string为所要查找的字符串
-------------------------------------------------------------
ubuntu下输入 adb shell会报devices not found
解决方法:在根目录下.android文件夹下有一个adb_usb.ini文件,打开,将其值改为0x1782
将文件51-android.rules放在路径:文件系统,etc/udev/rules.d/51-android.rules
将OWNER="XXX" XXX 你登陆的系统名。root/tanfusheng
然后再输入以下命令:
adb kill-server
sudo restart udev
adb start-server
-------------------------------------------------------------
查看代码里编译生成的apk路径:out/target/product/hsdroid/system/app/  
查看手机里的apk方法:将手机连接到电脑上,打开设置USB调试模式,命令行输入
adb devices
adb shell
ls
ls system/app
---------------------------------------------------------------
开关机音量改变的问题,找到个临时解决办法。
在设置媒体音量的同时设置系统属性:sys.mplayer.volume
------------------------------------------------------------
http://zh.wikipedia.org/zh-cn/ISO_3166-1
en 英文
en_US 英文 (美国)
-------------------------------------------------
工厂测试,所有测试都选择pass都无法通过的问题,修改代码后,需要删除/productinfo/engtest.db文件。重新下载rom也不会删除此文件。或者全部擦除后下载也可解决此问题。
-------------------------------------------------
如果C910或其它项目,再遇到开机定屏或者不停重启等现象,记住擦除flash之后重新下载版本再试试,如果深圳或客户遇到此现象,也请让项目转告一下。
-------------------------------------------------
下载时遇到down load size error:解决:在u-boot/include/configs/对应的项目.h文件(c909.h)里找到MTDPARTS_DEFAULT
修改对应的大小,最好比编译出来的文件大几M,总大小是不变的。
--------------------------------------------------
内单用下面两个宏:
#酷宇launcher
HY_COOEE_SUPPORT := false
#酷宇天气时钟widget
HY_COOEE_WEATHER_SUPPORT := false
外单用下面两个:
#launcher精简版,没有天气。下面两个宏于上面两个只能同时打开一个!!!
HY_COOEE_SUPPORT_OS := false
HY_COOEE_WEATHER_SUPPORT_OS := false
-----------------------------------------------
在编译多国语言版本时要注意加一个multilanguage:./mk c909_psw_m1 -o=2sim:usr:multilanguage n
-----------------------------------------------
adb是 android debug bridge,是调试android的工具
adb devices显示当前连接的设备
adb install <apk文件路径> 安装apk文件到设备上
adb install -r <apk文件路径> 重新安装apk文件到设备上
adb push <源文件/目录> <目标路径> 将文件推送到制定目录下
adb shell rm -fr /mnt/abc 删除abc目录,adb shell下可以执行linux 终端里的命令
adb shell service *** 开启服务
adb shell ps      查看进程
adb logcat -c     清空日志
adb shell ls /data/app  查看apk包
adb shell monkey -p com.baidu.search -v 50 测试
-------------------------------------
activity-alias 用于给targetActivity属性所指定Activity设定一个别名
目标Activity必须跟别名Activity在同一个应用程序中,并且这个Activity必须在别名之前被声明
android:exported 用于设定其他的应用程序组件能否通过这个别名来启动目标Activity,如果设置为true,则能够启动,否则不能启动。如果设定为false,则目标Activity只能由与别名相同的应用程序组件或具有相同用户ID的应用程序通过别名来启动
android:enabled 用于设定系统能否通过这个别名来实例化目标Activity,如果设置为true,则可以实例化,否则不能实例化。默认值是true
--------------------------------------
AndroidManifest.xml文件详解(supports-screens)
<supports-screensandroid:resizeable=["true"|"false"]
                  android:smallScreens=["true" | "false"]
                  android:normalScreens=["true" | "false"]
                  android:largeScreens=["true" | "false"]
                  android:xlargeScreens=["true" | "false"]
                  android:anyDensity=["true" | "false"]
                  android:requiresSmallestWidthDp="integer"
                  android:compatibleWidthLimitDp="integer"
                  android:largestWidthLimitDp="integer"/>
这个元素用于指定应用程序所支持的屏幕尺寸,并针对比应用程序所支持的屏幕还要大屏幕,启用屏幕兼容模式。在应用程序中使用这个元素指定应用程序所支持的屏幕尺寸是至关重要的。
如果应用程序调整尺寸属性来填充整个屏幕,那么应用程序就要支持这个给定的尺寸。通常对于大多数应用程序,系统可以很好的完成这种调整工作,并且为了让应用程序在比一个手持设备大的屏幕上工作,你不需要做任何额外的工作。但是,针对不同的屏幕尺寸,通过提供可选的布局资源来优化应用程序的UI经常是很重要的。例如,一个运行在手持设备上的Activity布局,如果想要运行在平板电脑上,就需要修改这个Activity的布局。
但是,如果为了适应不同的屏幕尺寸而调整了尺寸,但应用程序也不能很好的工作,就可以使用<supports-screens>元素的属性来控制应用程序是否应该发布给屏幕较小的设备,或者使用系统的屏幕兼容模式,让UI放大以适应较大屏幕的要求。在没有针对较大屏幕尺寸的设计,并且普通的尺寸不能达到合适结果时,屏幕的兼容模式会通过模拟普通尺寸的屏幕和中等密度来缩放UI,以便它能够填充整个屏幕,这样会导致UI模糊,因此针对大屏幕的优化是比较好的。
注意:Android3.2引入了新的属性:android:requiresSmallestWidthDp、android:compatibleWidthLimitDp和android:largestWidthLimitDp。如果正在开发Android3.2或更高版本的应用程序,应该使用这些属性来声明应用程序所支持的屏幕尺寸,而不是基于一般的屏幕尺寸属性。
android:resizeable
这个属性用于指示针对不同的屏幕尺寸,应用程序是否可以调整尺寸。默认值是true。如果这个属性设置了false,在大的屏幕上,系统会在屏幕兼容模式中运行该应用程序。
这个属性被废弃了,引入这个属性主要是为了帮助应用程序从1.5过渡到1.6。当多屏幕支持被引入时,就不应该在使用它了。
android:smallScreens
这个属性用于指定应用程序是否支持较小外形的屏幕。一个small类型的屏幕被定义成一个比normal(传统的HVGA)类型的屏幕还要小的屏幕。外部服务(如Google Play)不会把不支持小屏的应用程序提供给小屏设备,因为很少有能够确保该应用程序在小屏幕的设备上正常工作的平台。这个属性的默认值是true。
android:normalScreens
这个属性用于指示应用程序是否支持普通外形的屏幕。典型的是HVGA中等密度的屏幕,但是WQVGA低密度和WVGA高密度屏幕也被认为是普通屏幕。这个属性的默认值是true。
android:largeScreens
这个属性用于指示应用程序是否支持较大外形的屏幕。一个large类型的屏幕被定义成一个比normal类型的手持设备的屏幕明显还要大的屏幕,并且为了让应用程序能够良好的使用,使用这个属性时要特别小心,尽管可以依赖系统来调整尺寸,以便能够填充屏幕。
这个属性的默认值实际上在某些版本之间是不同的,因此最好在任何时候都明确的声明这个属性。如果设置为false,系统会启用屏幕兼容模式,这时要格外的小心。
android:xlargeScreens
这个属性用于指示应用程序是否支持超大外形的屏幕。一个xlarge屏幕被定义成一个比large屏幕还要大的屏幕,如平板电脑,为了能够让应用程序良好的使用,需要特别小心的使用这个属性,尽管可以依赖系统来UI的尺寸来填充屏幕。
android:anyDensity
这个属性指明应用程序是否包含了能够适用于任何屏幕密度的资源。
对于支持Android1.6(API Level 4)和更高版本的应用程序,这个属性的默认值是true,并且除非绝对的确认这是应用程序正常工作所必须的,否则不应该把它设置为false。只是在应用程序直接操作位图时才需要禁止这个属性。
android:requiresSmallestWidthDp
这个属性用于指定smallestWidth的最小需求。smallestWidth是屏幕空间的最短尺寸(以dp为单位),它必须是对应用程序的UI是有效的。也就是说它是有效的屏幕的两个维度的尺寸中最短的那个。因此为了考虑设备跟应用程序的兼容性,设备的smallestWidth的值必须要大于等于这个属性所设置的值。通常这个属性值是针对布局所支持的最小宽度,而不是屏幕当前的方向。
例如,典型的手持设备屏幕smallestWidth是320dp;7英寸的平板电脑的smallestWidth是600dp;10英寸的平板电脑的smallestWidth是720dp。这些值一般都是最小的宽度,因为它们是屏幕可用空间中最短的那个尺寸。
这对这个尺寸值的比较,需要考虑屏幕的装饰和系统UI部分。例如,如果系统有一些固定的UI元素要显示,那么系统声明的设备的最小宽度(smallestWidth)要比实际的屏幕尺寸要小,因为被系统UI占用的屏幕像素对于应用的UI是无效的。因此,这个值应该是应用布局所使用的最小宽度需求,而不管屏幕的当前方向。
如果应用程序能够针对较小屏幕尺寸进行正确的调整(small尺寸或最小宽度是320dp以下的屏幕),那么就不需要这个属性。否则就应该使用这个属性值跟应用程序所使用的最小屏幕宽度限定符的值(sw<N>dp)相匹配。
警告:Android系统不会关注这个属性,因此它不会影响应用程序在运行时的行为。相反,它被服务(如Google Play)用于过滤应用程序。但是,当前Google Play不支持用这个属性来过滤(在Android3.2上),因此如果应用程序不支持小屏幕设备,就应该继续使用其他的尺寸属性。
这个属性在API Level 13中被引入。
android:compatibleWidthLimitDp
这个属性允许在设计应用程序时,通过指定最大的“smallest screen width”来启用屏幕兼容模式,作为一个用户可选的功能。如果设备的有效屏幕的最小边比这个属性值大,那么用户依然能够安装该应用程序,但是在运行时要使用屏幕兼容模式。默认情况下,屏幕兼容模式似乎被禁止的,并且通过会调整布局的尺寸来填充屏幕,但是在系统栏中会有一个按钮,让用户选择屏幕兼容模式的打开和关闭。
如果应用程序跟所有的屏幕尺寸都兼容,并且它的布局能够被正确的调整尺寸,就不需要使用这个属性。
注意:当前,屏幕兼容模式只能模拟320dp宽度的手持设备屏幕,因此如果android:compatibleWidthLimitDp的值比320大,那么屏幕兼容模式就不被适用。
这个在API Level 13中被引入。
android:largestWidthLimitDp
这个属性允许再设计应用程序时,通过指定最大的“smallest screen width”来强制启用屏幕兼容模式。如果设备有效屏幕的最小边比这个属性值大,应用程序就会运行在屏幕兼容模式中,而用户没有办法禁止这种模式。
如果应用程序跟所有的屏幕尺寸都兼容,并且能够被正确的调整尺寸,就不需使用这个属性。否则首先要考虑使用android:compatibleWidthLimitDp属性。只有在因大屏幕尺寸调整而导致破坏了应用程序的功能的时候,并且使用屏幕兼容模式是唯一的方法的时候,才应该使用这个属性。
------------------------------------
LayoutInflater作用是将Layout的xml布局文件实例化为View类对像
(1).通过SystemService获得
    LayoutInflater inflater = (LayoutInflater)context.getSystemServices(Context.LAYOUT_INFLATER_SERVICES);
    Viewview = inflater.inflate(R.layout.main, null);
(2).从给定的context中获得
    LayoutInflater inflater = LayoutInflater.from(context);
    Viewview = inflater.inflate(R.layout.mian, null);
(3).
    LayoutInflater inflater =getLayoutInflater();(在Activity中可以使用,实际上是View子类下window的一个函数)
    Viewlayout = inflater.inflate(R.layout.main, null);

Activity的getLayoutInflater()方法是调用PhoneWindow的getLayoutInflater()方法
----------------------------------------
如果卡槽1和2反了:请修改nv,nv_type/NV_SIM_SLOT_CFG的值从0x00010203到0x01000203
------------------------------------------
Git相关命令行操作:
Git 添加文档
git add . # 将资源暂存到 staging area, add 再新增的资料, 对此次 commit 不会包含在里面.
git add filename
git add modify-file # 修改过的文档,也要 add. (不然 commit 要加上 -a 的參數)
git add -u # 只增加修改过的文档,不加新增的文档.
git add -i # 进入互动模式
Git 删除文档
git rm filename
Git 修改文档名,
git mv filename new-filename
Git status 查看修改状态
git status # 查看当前目录下的文档状态
Git Commit
git commit
git commit -m ‘commit message’
git commit -a -m ‘commit -message’ # 将所有修改的文档都 commit, 但新增的文档还是得先 add.
git commit -a -v # -v 可以看到文档哪些內容有被更改, -a 把所有修改的文档都 commit
Git 生成新的 branch
git branch # 列出目前有多少 branch
git branch new-branch # 產生新的 branch (名稱: new-branch), 若沒有特別指定, 會由目前所在的 branch / master 直接複製一份.
git branch new-branch master # 由 master 產生新的 branch(new-branch)
git branch new-branch v1 # 由 tag(v1) 產生新的 branch(new-branch)
git branch -d new-branch # 刪除 new-branch
git branch -D new-branch # 強制刪除 new-branch
git checkout -b new-branch test # 產生新的 branch, 並同時切換過去 new-branch
# 與 remote repository 有關
git branch -r # 列出所有 Repository branch
git branch -a # 列出所有 branch
Git checkout 切換 branch
git checkout branch-name # 切換到 branch-name
git checkout master # 切換到 master
git checkout -b new-branch master # 從 master 建立新的 new-branch, 並同時切換過去 new-branch
git checkout -b newbranch # 由現在的環境為基礎, 建立新的 branch
git checkout -b newbranch origin # 於 origin 的基礎, 建立新的 branch
git checkout filename # 還原檔案到 Repository 狀態
git checkout HEAD . # 將所有檔案都 checkout 出來(最後一次 commit 的版本), 注意, 若有修改的檔案都會被還原到上一版. (git checkout -f 亦可)
git checkout xxxx . # 將所有檔案都 checkout 出來(xxxx commit 的版本, xxxx 是 commit 的編號前四碼), 注意, 若有修改的檔案都會被還原到上一版.
git checkout — * # 恢復到上一次 Commit 的狀態(* 改成檔名, 就可以只恢復那個檔案)
Git diff
git diff master # 與 Master 有哪些資料不同
git diff –cached # 比較 staging area 跟本來的 Repository
git diff tag1 tag2 # tag1, 與 tag2 的 diff
git diff tag1:file1 tag2:file2 # tag1, 與 tag2 的 file1, file2 的 diff
git diff # 比較 目前位置 與 staging area
git diff –cached # 比較 staging area 與 Repository 差異
git diff HEAD # 比較目前位置 與 Repository 差別
git diff new-branch # 比較目前位置 與 branch(new-branch) 的差別
git diff –stat
Git Tag
git tag v1 ebff # log 是 commit ebff810c461ad1924fc422fd1d01db23d858773b 的內容, 設定簡短好記得 Tag: v1
git tag 中文 ebff # tag 也可以下中文, 任何文字都可以
git tag -d 中文 # 把 tag=中文 刪掉
Git log
git log # 將所有 log 秀出
git log –all # 秀出所有的 log (含 branch)
git log -p # 將所有 log 和修改過得檔案內容列出
git log –stat –summary # 查每個版本間的更動檔案和行數
git log filename # 這個檔案的所有 log
git log directory # 這個目錄的所有 log
git log -S’foo()’ # log 裡面有 foo() 這字串的.
git log –no-merges # 不要秀出 merge 的 log
git log –since=”2 weeks ago” # 最後這 2週的 log
git log –pretty=oneline # 秀 log 的方式
git log –pretty=short # 秀 log 的方式
git log –pretty=format:’%h was %an, %ar, message: %s’
git log –pretty=format:’%h : %s’ –graph # 會有簡單的文字圖形化, 分支等.
git log –pretty=format:’%h : %s’ –topo-order –graph # 依照主分支排序
git log –pretty=format:’%h : %s’ –date-order –graph # 依照時間排序
Git show
git show ebff # 查 log 是 commit ebff810c461ad1924fc422fd1d01db23d858773b 的內容
git show v1 # 查 tag:v1 的修改內容
git show v1:test.txt # 查 tag:v1 的 test.txt 檔案修改內容
git show HEAD # 此版本修改的資料
git show HEAD^ # 前一版修改的資料
git show HEAD^^ # 前前一版修改的資料
git show HEAD~4 # 前前前前一版修改的資料
Git reset 還原
git reset –hard HEAD # 還原到最前面
git reset –hard HEAD~3
git reset –soft HEAD~3
git reset HEAD filename # 從 staging area 狀態回到 unstaging 或 untracked (檔案內容並不會改變)
Git grep
git grep “te” v1 # 查 v1 是否有 “te” 的字串
git grep “te” # 查現在版本是否有 “te” 的字串
Git stash 暫存
git stash # 丟進暫存區
git stash list # 列出所有暫存區的資料
git stash pop # 取出最新的一筆, 並移除.
git stash apply # 取出最新的一筆 stash 暫存資料. 但是 stash 資料不移除
git stash clear # 把 stash 都清掉
Git merge 合併
git merge
git merge master
git merge new-branch
下述轉載自: ihower 的 Git 版本控制系統(2) 開 branch 分支和操作遠端 repo.x
Straight merge 預設的合併模式,會有全部的被合併的 branch commits 記錄加上一個 merge-commit,看線圖會有兩條 Parents 線,並保留所有 commit log。
Squashed commit 壓縮成只有一個 merge-commit,不會有被合併的 log。SVN 的 merge 即是如此。
cherry-pick 只合併指定的 commit
rebase 變更 branch 的分支點:找到要合併的兩個 branch 的共同的祖先,然後先只用要被 merge 的 branch 來 commit 一遍,然後再用目前 branch 再 commit 上去。這方式僅適合還沒分享給別人的 local branch,因為等於砍掉重練 commit log。
指令操作
git merge <branch_name> # 合併另一個 branch,若沒有 conflict 衝突會直接 commit。若需要解決衝突則會再多一個 commit。
git merge –squash <branch_name> # 將另一個 branch 的 commit 合併為一筆,特別適合需要做實驗的 fixes bug 或 new feature,最後只留結果。合併完不會幫你先 commit。
git cherry-pick 321d76f # 只合併特定其中一個 commit。如果要合併多個,可以加上 -n 指令就不會先幫你 commit,這樣可以多 pick幾個要合併的 commit,最後再 git commit 即可。
Git blame
git blame filename # 關於此檔案的所有 commit 紀錄
Git 還原已被刪除的檔案
git ls-files -d # 查看已刪除的檔案
git ls-files -d | xargs git checkout — # 將已刪除的檔案還原
Git 維護
git gc # 整理前和整理後的差異, 可由: git count-objects 看到.
git fsck –full
Git revert 資料還原
git revert HEAD # 回到前一次 commit 的狀態
git revert HEAD^ # 回到前前一次 commit 的狀態
git reset HEAD filename # 從 staging area 狀態回到 unstaging 或 untracked (檔案內容並不會改變)
git checkout filename # 從 unstaging 狀態回到最初 Repository 的檔案(檔案內容變回修改前)
以下與 遠端 Repository 相關
Git remote 維護遠端檔案
git remote
git remote add new-branch http://git.example.com.tw/project.git # 增加遠端 Repository 的 branch(origin -> project)
git remote show # 秀出現在有多少 Repository
git remote rm new-branch # 刪掉
git remote update # 更新所有 Repository branch
git branch -r # 列出所有 Repository branch
抓取 / 切換 Repository 的 branch
git fetch origin
git checkout –track -b reps-branch origin/reps-branch # 抓取 reps-branch, 並將此 branch 建立於 local 的 reps-branch
刪除 Repository 的 branch
git push origin :heads/reps-branch
------------------------------------------
wallpaper 存放在launcher里的
------------------------------------------
获取系统墙纸:
final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);   
     //获取壁纸图片   
3  final Drawable wallpaperDrawable = wallpaperManager.getDrawable();
------------------------------------------
android源码默认墙纸设置:在packages/apps/launcher2/res/drawable_mdpi
加载是在 packages/apps/launcher2/res/values-mdpi/wallpapers.xml
-----------------------------------------
有没有觉得,每次git pull 或git push的时候,都需要重新输入密码,很麻烦。搜了下找到一种方法记住ssh连接的密码,同时把Git repository的密码保存下来,下面就来一步一步做吧。。
1. 首先是保存密码输入问题,需要创建密钥,在你的命令行输入:
local:~ yourname$  ssh-keygen -t rsa
然后依次回车,输入密码,这个密码和SSH的帐号密码无关。
Generating public/private rsa key pair.
Enter file in which to save the key (/u/kim/.ssh/id_rsa): 【回车】
Enter passphrase (empty for no passphrase): 【第一次密码】
Enter same passphrase again: 【第二次密码】
Your identification has been saved in /u/kim/.ssh/id_rsa.
Your public key has been saved in /u/kim/.ssh/id_rsa.pub.
2. 接下来把密钥文件内容上传到的SSH帐号下:
local:~ yourname$ cat ~/.ssh/id_rsa.pub  | ssh username@yourhost 'cat >> .ssh/authorized_keys'
3. 最后一步测试
local:~ yourname$ ssh username@yourhost.com
如果此时不需要你输入密码,那么恭喜你设置成功了。现在你再执行git pull 或git push就不需要输入密码了。
如果更换主机ip地址等,会出现ssh的一个提示,去除这个提示,请使用:
ssh-keygen -f  ~/.ssh/known_hosts -R NewIP
--------------------------------------------------------------
下拉菜单上的wifi bt  数据  飞行模式  源码在frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/SwitchControlPanel.java中
--------------------------------------------------------------


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值