当(D-> VLGC)可以检测PD是否连接到了SDP上。
3.2.4.4 Primary Detection, ACA-Dock
Figure 3-9展示了支持识别ACA的PD连接到ACA-DOCK上时Primary Detection的工作方式
3.2.5 Secondary Detection 二次检测
二次检测用来区分DCP还是CDP。PD在检测到VBUS的TSVLD_CON_PWD(Session valid to connect
time for powered up peripheral max=1s)时间内,如果PD还没做好被枚举的准备,则要求PD进行二次检测。
PD做好了被枚举的准备,则可以跳过二次检测,参考Section 3.3.2 Good Battery Algorithm。
PS:什么是做好被枚举的准备? 是指建立了连通,即下游设备已经使能了D+/D-线的1.5K上拉电阻,使数据线
进入了相应的信号模式,参考前面对“connect”和“attach”的解释。
3.2.5.1 Secondary Detection, DCP
Figure 3-11 展示了连接到DCP的PD二次检测的方式
Figure 3-11 Secondary Detection, DCP
二次检测的时候:
PD在D-上使能 VDM_SRC,打开 IDP_SINK
比较D+和 VDAT_REF的电压,因为DCP内部通过RDCP_DAT短接了D+/D-信号线,所以VDM_SRC这个
电压源的电压使得(VDAT_REF < D+ < VDM_SRC)
当PD检测到(VDAT_REF < D+)时,就判断连接到了DCP上。
而后要求PD使能 VDP_SRC 或者通过RDP_UP上拉D+到 VDP_UP,
同Section 3.3.2定义的Good Battery Algorithm VDM_SRC(D- Source Voltage 0.5~0.7V) VDP_SRC(D+ Source Voltage 0.5~0.7V) IDP_SINK
(D+ Sink Current 25~175μA) VDAT_REF(Data Detect Voltage 0.25~0.4V) RDCP_DAT(Dedicated
Charging Port resistance across D+/-max=200Ω) RDP_UP(D+ Pull-up resistance 900~1575 Ω)
VDP_UP(D+ pull-up Voltage 3.0~3.6V)
3.2.5.2 Secondary Detection, CDP
Figure 3-12 展示了连接到CDP的PD二次检测的方法
Figure 3-12 Secondary Detection, CDP
二次检测的时候:
PD在D-上使能 VDM_SRC,打开 IDP_SINK
比较D+和 VDAT_REF的电压,因为CDP内部没有短接D+/D-,所以(VDAT_REF > D+ = GND)
当PD检测到(D+ < VDAT_REF),就判断连接到了CDP上
而后要求PD关闭VDP_SRC 和 VDM_SRC,同Section 3.3.2定义的Good Battery Algorithm,然后PD将汲取
IDEV_CHG的充电电流
3.3 Charger Detection Algorithms
3.3.1 Weak Battery Algorithm 弱电池算法
Figure 3-14 是PD连接弱电池时的充电检测算法的一个例子,当然其它的算法也可以,但是要符合DBP规则
要求PD内部实现如下几种电压的阈值的检测:VOTG_SESS_VLD, VDAT_REF and VLGC。检测的阈值
并不是这些参数的最大或最小值,而是PD内部设计在这些参数范围内的固定值。在左侧的例子中,带有弱电
池的PD检测到 (VBUS > VOTG_SESS_VLD)后,会在D+上使能VDP_SRC。如果(D— > VDAT_REF)或
者ID PIN不是在float状态,PD可以汲取IDEV_CHG大小的电流。否则PD只能汲取IUNIT大小的电流。如图所
示,也可以加入紫色的参数VLGC t作为判断条件,这样可以防止PD从PS2口或其它专用充电器充电
3.3.2 Good Battery Algorithm
Figure 3-15 是带有Good Battery的PD需要遵守的的充电检测算法。
当PD 连接到SDP或充电口时,应该使用Good Battery Algorithm检测算法。对于SDP和Charging Port之外
设备或端口,允许添加额外的检测分支。对于添加额外检测分支,不应该造成D+/D-和ID PIN上Good Battery
Algorithm基础上额外的动作,这些动作会对SDP和Charging Port的检测造成影响。添加的额外分支也可以在
Good Battery Algorithm检测最后步骤之后,这样的branch可以使用D+/D-和ID PIN上的动作作为判断的条件。
但是要考虑到如果连接到DCP上时,要求VBUS有效后,D+要一直保持(D+>VDAT_REF)这种情况。PD一旦检
测到(VBUS>VOTG_SESS_VLD),将启动一个计时器TDCD_TIMEOUT。支持DCD的PD可以使能IDP_SRC并
检测D+ 持续TDCD_DBNC时间在VLGC_LOW 。支持ACA检测的PD可以ID PIN在TDCD_DBNC时间内不在
floating状态。如果在D+或ID PIN的连接被检测到之前,DCD计时器超时,PD将进行Primary Detection。如果
PD检测到ID PIN在非floating的状态超过TDCD_DBNC,则直接进入一种ACA模式
Figure 3-17 是DCD开始检测前Data PIN就已经连接上的时序图 Figure 3-17 DCD Timing, Contact Before Start
Figure 3-18 是没检测到DCD的时序 Figure 3-18 DCD Timing, No Contact
3.4.2 Detection Timing, CDP
Figure 3-19 是CDP的主要检测和二次检测的时序,包含了比较D+和VDAT_REF and VLGC,根据条件使能
VDM_SRC的情况。当PD没连接时,CDP也可以保持使能VDM_SRC。详细参考Section 3.2.4.2
Notes: 1)LS PD的时序和左侧基本相同,不同的地方是LS PD会拉高D-线,而不是D+线。
Figure 3-19 是连接到CDP的PD主要检测和二次检测的时序。PD打开VDP_SRC and IDM_SINK。要求CDP
从(D+ > VDAT_REF)开始的TVDMSRC_EN时间内使能D-线的VDM_SRC。从(D+ > VDAT_REF)后
TVDPSRC_ON开始,PD可以检查D-线的状态,如果(D- > VDAT_REF)(或者选择性的判断D- < VLGC,参
考 3.2.4.1),这是PD判断是连接到了Charging Port上,开始汲取IDEV_CHG大小的电流。为了进行二次检
测,要求PD disable VDP_SRC and IDM_SNK,使能VDM_SRC and IDP_SINK。使能VDM_SRC and
IDP_SINK 时间TVDMSRC_ON后,PD可以检查D+的状态。因为CDP在D+上没有电压源,所以(D+ <
VDAT_REF),可以判断PD连接到了CDP上。如果PD在检测到VBUS时powered up,则要求PD在
TSVLD_CON_PWD内建立连通。CDP会在检测到连通的TCON_IDPSNK_DIS内disable IDP_SINK 。
3.5 Ground Current and Noise Margins 接地电流及噪声容限
在USB2.0 spec. 图7-47中,100mA的电流在USB线缆中的GND line上能产生25mV的压差。这就造成了Host
的GND和device的GND有25mV的压差。GND的电压差降低了信号和充电检测的噪声容限。 PD能从CDP汲取的最大电流值是IDEV_CHG.当PD本地的GND电平大于远端host GND电平达到最大允许值
VGND_OFFSET时,在PD从CDP汲取电流大于ICFG_MAX的时候,要求PD支持LS,FS,HS和Chirp。(即边界条
件下对保证必须功能的要求) 当Host和PD间GND的电压偏置达到最大值VGND_OFFSET max时,要求PD和CDP要有大于USB2.0中标称
的共模的范围。
4. Charging Port and Portable Device Requirements 对充电端口和PD的要求
这一章介绍了如下的要求: CDP、ACA-DOCK、DCP、ACA、PD
4.1 Charging Port Requirements 对充电端口的要求
一下要求适用所有类型的充电端口,包括CDP, ACA-Dock, DCP and ACA
4.1.1 Overshoot 正过冲
充电端口的输出电压在负载电流任一阶段的变化都不能超过VCHG_OVRSHT(充电电流会根据不同的充
电阶段发生变化),在充电端口上电或掉电的时候也不能超过这个值
4.1.2 Maximum Current 最大电流
在任何情况下,充电端口的输出电流都不能超过ICDP的最大值
4.1.3 Detection Renegotiation 重新检测
DS port可以是SDP,CDP或者DCP,并可以在这几种端口之间切换。为了使PD重新启动充电检测流程,
要求DS port: 停止驱动VBUS允许VBUS电压降到 VBUS_LKG之下等待 TVBUS_REAPP 时间从新驱动
VBUS
4.1.4 Shutdown Operation 关断操作
如果PD汲取的电流超过了Charging Port能提供的范围,此时Charging Port可以关断。关断类型包括: 关
断VBUS恒定电流限制反向电流限制
4.2 Charging Downstream Port
如下要求适用于CDP
4.2.1 Required Operating Range 需要的工作范围
CDP在输出电流小于 ICDP min 时,输出电压范围应该保证在VCHG。VBUS上电压值是TVBUS_AVG时
间的平均值。当负载电流大于ICDP min,CDP可以关断。一旦关断,则需要遵循Section 4.1.4的要求。 Figure 4-1是CDP负载曲线的几个例子。负载曲线在VCHG电压范围内要求横穿ICDP min。在电流小于ICDP
min范围内,负载曲线不能横穿VCHG min
Figure 4-1 CDP Required Operating Range
4.2.2 Shutdown Operation 关断操作
如果CDP因为电流过载而关断,当过载条件消失后,CDP应该在TSHTDWN_REC内恢复并输出正常范围
的电压VCHG
4.2.3 Undershoot 负过冲
在负载电流小于ICDP min时,负载电流的任一阶段的变化,CDP的输出电压都应该保持在
VCHG_UNDSHT
4.2.4 Detection Signaling 信号检测
当远端PD没连通到CDP上时,要求CDP实现两种行为方式中的一种。 第一种方式: 在断开连接后的
TCP_VDM_EN内使能VDM_SRC,然后在连接后的TCP_VDM_DIS时间内disable VDM_SRC。使用这种方式
的时候,不要求CDP使能IDP_SINK,或者和D+比较电压值VDAT_REF. 第二种方式: 比较D+电压值和
VDAT_REF and VLGC的大小关系。当(VDAT_REF < D+ < VLGC),CDP使能VDM_SRC。当(D+ <
VDAT_REF)或(D+ > VLGC),CDP disable VDM_SRC.时序参考Section 3.4.2
4.2.5 Connector 连接器
CDP是一个Standard-A的母口,连接到PD
4.3 ACA-Dock
如下的规定适用于ACA-DOCK的US PORT.
4.3.1 Required Operating Range
同CDP
4.3.2 Undershoot 负过冲
同CDP
4.3.3 Detection Signaling 信号检测
当PD连接到ACA-DOCK上时,PD作为host的同时从VBUS汲取电流。这种情况类似于PD连接到ACA,
ACA的Accessory Port连接了一个外设的情况。为了通知PD它将作为host汲取电流,ACA-DOCK和ACA都需要
通过电阻RID_A下拉ID PIN到GND。ACA-DOCK要以 ICDP 给PD供电,但是ACA以 IDCP 给PD供电,并且这
个电流必须共享给PD和 Accessory Port连接的任何设备。为了使PD能区分它连接到了一个ACA-DOCK上,而
不是ACA上,ACA-DOCK应该按如下要求在D-上使能VDM_SRC: 1.如果 D+/- 在Idle J态时间超过
TCP_VDM_EN,ACA-DOCK将使能VDM_SRC 2.在D+/-上信号发生变化的TCP_VDM_DIS时间内,ACA-
DOCK将停止VDM_SRC
4.3.4 Connector 连接器
ACA-DOCK应该有一个Micro-A的公口,用来连接PD的Micro-AB母口
4.4 Dedicated Charging Port DCP
以下内容是对DCP的要求
4.4.1 Required Operating Range 需要的工作范围
当DCP输出的电流小于IDCP min的情况下,输出的电压应该在VCHG定义的范围内。VBUS的电压是在
TVBUS_AVG时间的平均值。当DCP的负载电流小于IDEV_CHG,并且负载电压大于VDCP_SHTDOWN时,
DCP应该保持工作不被关断。当负载电流大于IDEV_CHG,或者负载电压小于VDCP_SHTDOWN时,DCP可
以被关断。关断后,遵循Section 4.1.4的要求。
Figure 4-2 是几个负载曲线的例子。DCP负载曲线要求穿过恒定电流线IDEV_CHG max,或者恒定电压线
VDCP_SHTDWN。DCP不允许在需要的工作范围内关断。
Figure 4-2 DCP Required Operating Range
4.4.2 Undershoot 负过冲
负载电流从IDCP_LOW to IDCP_MID,或者从IDCP_MID to IDCP_HI 任一阶段的变化,DCP的负过冲电压
始终应该保持在VCHG_UNDSHT范围内。在负载阶段从low to mid后,要求DCP在TDCP_LD_STP时间内负
载阶段从mid to hi也要符合这个要求。负过冲的持续时间要在TDCP_UNDSHT定义的范围内。 负载电流的变化如果从IDCP_LOW to IDCP_HI,DCP供给PD的负载电压可以drop TDCP_UNDSHT时间。这个
时间后DCP的输出电压应该在VCHG范围内,负载电流应该小于IDCP min。
4.4.3 Detection Signaling 信号检测
DCP在D+和D-间用RDCP_DAT短接DCP D+/D- PIN上的漏电流应该小于或者等于两个连接到
VDAT_LKG 的RDAT_LKG电阻的漏电流。参考 Figure 3-6.D+/- pins 和DCP GND之间的电容应该在
CDCP_PWR规定的范围内
4.4.4 Connector
一个DCP应该有一个Standard-A的母口,或者有一个Micro-B公口的一体线
4.5 Accessory Charger Adapter
以下是对充电端口连接了DCP或CDP的ACA要求
4.5.1 Required Operating Range 要求的工作范围
对ACA的OTG Port要求的工作范围受以下因素的影响:
(1)充电口上的设备 (DCP or CDP)
(2)从Accessory Port汲取的电流
(3)RACA_CHG_OTG
(4)VACA_OPR ACA OTG
Port能提供给PD的电流的大小取决于Charger Port能提供电流的大小和连接在Accessory Port的设备汲取
的电流的大小。OTG端口能获得的电压值取决于充电端口的电压,从OTG and Accessory Ports汲取的电
流的大小和RACA_CHG_OTG。只有在充电端口的电压在VACA_OPR范围时,才能要求ACA正常工作
4.5.2 Undershoot 负过冲
充电端口连接DCP或CDP的ACA应该遵循和DCP一样负过冲要求。
4.5.3 Detection Signaling 信号检测
如spec中Section 6中描述的,ACA应该把OTG端口的ID PIN下拉到GND,下拉电阻可选值是:RID_GND,
RID_C, RID_B, RID_A, RID_FLOAT ACA中D+/D- PIN应该是从OTG端口直连到the Accessory Port.
4.5.4 Connector
ACA的OTG端口应该是一根Micro-A的一体线
4.6 Portable Device
以下部分是对PD的要求
4.6.1 Allowed Operating Range
PD从充电端口汲取的最大电流不能超过IDEV_CHG。PD不能把充电端口的电压拉低到VDCP_SHTDWN
max以下。Figure 4-3 是PD的正常工作范围。
4.6.2 Detection Signaling
所有的PD都应该实现以下的检测特征:
(1)DCD timer (TDCD_TIMEOUT)
(2)Primary Detection 主要检测,区分是DCP/CDP还是SDP类型的充电设备在Primary Detection时
比较D-和VDAT_REF 的大小 PD可以选择性的实现以下检测特征:
(1)DCD, 使用 IDP_SRC
(2)在主要检测期间比较D-和VLGC的大小
(3)二次检测
(4)ACA 检测
4.6.3 Detection Renegotiation 重新检测
为了再次重新开始充电器的检测流程,允许DS关断并从新使能VBUS上的供电。参考Section 4.1.3. 为了
检测到VBUS的掉电,要求PD在VBUS关断时能对VBUS上的寄存的电荷快速的放电。要求在TVLD_VLKG时间
内使电压低于VBUS_LKG。 当PD连接到充电端口时,允许PD断开并重复数次充电器的检测流程。在断开连
接到从新开始充电器检测流程之间,要求PD最少等待TCP_VDM_EN max 时间。
4.6.4 Connector
能连接到ACA-DOCK或ACA的PD应该有一个的Micro-AB母口
6. Accessory Charger Adapter
6.1 前言
随着移动设备变得越来越小,对外只留一个接口是大势所趋。如果这个仅有的接口是USB接口,那就会面临
一个问题,在PD已经连接其它设备的同时,还需要给设备充电该怎么办。 举个例子,用户在汽车里边,把耳机连
接到了手机上,但此时手机的电量很低了,需要充电,在充电的同时,仍然可以继续使用耳机通话。如果手机只
有一个借口,那么就不可能把耳机和充电器同时连到一个接口上。 另外还有这么一种情况,设想有这么一种移动
设备,只有一个接口,但也可以作为掌上PC。当这样的PD放到ACA-DOCK上时,它可以作为host连接各种各样的
外设,比如hub, keyboard, mouse, printer等等。但是同时也可以被充电。 这章主要就是阐述一种方法,一个USB
端口,可以同时连接充电器和设备。这种方法是用了一种ACA的设备实现。如Figure 6-1。
Figure 6-1 Accessory Charger Adapter
ACA 有如下的三个端口: ? OTG Port ? Accessory Port ? Charger Port OTG Port 有一根 Mircro-A公口的一
体线。只有OTG设备(比如带有Micro-AB母口的设备)能连接到这个OTG Port上。 连接到Accessory Port上的
外设能是用正常的USB信号和OTG设备通信。 Charger Port将ACA连接到一个Charger Port。Charger Port提供
的电量既可以供给OTG设备,也可以供给外设。要求ACA把Charger Port仅仅标识为充电器,因为ACA不支持
OTG Port和Charger Port的USB通信。 Charger Port 仅仅用来供电。同时也要求ACA提供一个指示用来显示什么
时候能给OTG and Accessory Ports供电。 有两种类型的ACA:
(1)Micro ACA
(2)Standard ACA
Micro ACA有一个Micro-AB 母口作为Accessory Port,既能连接A-device也能连接B-device。Standard ACA
有一个Standard-A的母口作为Accessory Port,只能连接B-device。
6.2 Micro ACA
6.2.1 Micro ACA Ports
Figure 6-2 是Micro ACA的端口描述 Figure 6-2 Micro ACA Ports
能连接到Micro ACA的Accessory Port(Micro-AB 母口)的线缆类型包括:
(1)Micro-A to Micro-B
(2)Micro-A to captive
(3)Micro-B to Standard-A
(4)Micro-B to Micro-A
Micro ACA的Charger Port接口类型包括:
(1)Micro-B 母口
(2)Standard-A公口的一体线 (3)连接charger的一体线
6.2.2 Micro ACA Connectivity Options Micro ACA连接方法
Table 6-1 是设备连接到Micro ACA端口的各种组合。
Table 6-1 Micro ACA Connectivity Options
ACA不能通过充电端口进行数据通信。仅仅允许从充电端口充电。当SDP或OTG设备连接到Charger Port
时,不能通过Charger Port从SDP或OTG设备汲取电流。 在OTG device和B-device 都从Charger Port充电的
情况,不必支持SRP,因为VBUS在OTG Port and Accessory Port已经都存在了。 要求OTG device限制从
ACA汲取的电流,因为要求保证VBUS_OTG的电平始终大于VACA_OPR min,汲取电流过大可能将
VBUS_OTG拉低至VACA_OPR min以下。
6.2.3 Micro ACA Architecture Micro ACA结构
Figure 6-3 是Micro ACA的结构
Figure 6-3 Micro ACA Architecture
Accessory Switch控制VBUS_OTG 和 VBUS_ACC之间的电流通断。Charger Switch控制VBUS_CHG 和
VBUS_OTG之间的电流通断。
Adapter Controller有如下的功能:
(1)读ID_ACC pin的状态(grounded or floating)
(2)在ID_OTG pin上使能一种状态, (RID_GND, RID_A, RID_B, RID_C or RID_FLOAT)
(3)使用DP_CHG and DN_CHG pins 检测Charger Port是否连接到了充电器上
(4)读取 VBUS_ACC pin上的电压
(5)控制 Charger 和 Accessory Switches
6.2.4 Micro ACA Modes of Operation Micro ACA的工作模式
Micro ACA的工作模式见Table 6-2, 这个表假设OTG Port连接的总是OTG device。
Table 6-2 Micro ACA Modes of Operation
备注 1) Open是指switch的高阻态,即不导通。 Closed 是指switch低阻态,即导通。 在第5行和第7行,充电器连接到了Micro ACA Charger Port,Accessory Port没连接设备或者连接到
Accessory Port的A-device并没驱动VBUS。 ACA使能ID PIN上的 RID_B 电阻向 OTG device表明ACA可
以对它充电,并允许OTG device发起SRP请求。OTG device不能建立连通(这意味着OTG device要保持
DP_OTG在低电平)。这是因为如果连接到Accessory Port的 A-device如果没有驱动VBUS,根据USB
spec规定,数据线要保持在低电平。 PS: Micro ACA的Accessory Port连接A-device,在什么情况下才能和OTG-Port的B-device建立连通?
参见第3,4行。
第8行,充电器连接到了Micro ACA的Charger Port, Accessory Port上连接了使能VBUS的A-device。
ACA使能ID PIN上的电阻RID_C向OTG Port上的OTG B-device表明ACA可以对它充电,并且可以建立连
通。但是OTG Port的OTG B-device不能发起SRP,因为A-device已经使能了VBUS (PS:这个解释没看明
白,Accessory switch open,怎么发起SRP?答:这里的SRP是指OTG Port上的B-Device对Charger Port
上的充电器发起的).
第6行,充电器连接到了Micro ACA的Charger Port,B-device连接到了Accessory Port。ACA使能ID PIN上
的电阻RID_A向OTG Port上的OTG device表明ACA可以对它充电,并且表示OTG Port上的OTG device作
为host。
6.2.5 Implications of not Supporting Micro ACA Detection 不支持Micro ACA检测的影响
OTG的附录仅仅定义了ID PIN的 floating(悬空) and ground 状态。floating state定义是ID PIN的对地电
阻大于1M,ground state的定义是ID PIN的对地电阻小于10Ω。因为RID_A, RID_B and RID_C的阻值是介于悬
空和接地电状态的阻值之间,所以一个不支持ACA检测的OTG device有可能把ACA的阻值判断为floating。
转载于:https://www.cnblogs.com/zxc2man/p/5610670.html
你可能感兴趣的:(Battery Charging Specification 1.2 中文详解 来源:www.chengxuyuans.com)
深入解析JVM工作原理:从字节码到机器指令的全过程
一、JVM概述Java虚拟机(JVM)是Java平台的核心组件,它实现了Java"一次编写,到处运行"的理念。JVM是一个抽象的计算机器,它有自己的指令集和运行时内存管理机制。JVM的主要职责:加载:读取.class文件并验证其正确性存储:管理内存分配和垃圾回收执行:解释或编译字节码为机器指令安全:提供沙箱环境限制恶意代码二、JVM架构详解JVM由三个主要子系统组成:1.类加载子系统类加载过程分为
JVM 内存模型深度解析:原子性、可见性与有序性的实现
练习时长两年半的程序员小胡
JVM 深度剖析:从面试考点到生产实践 jvm java 内存模型
在了解了JVM的基础架构和类加载机制后,我们需要进一步探索Java程序在多线程环境下的内存交互规则。JVM内存模型(JavaMemoryModel,JMM)定义了线程和主内存之间的抽象关系,它通过规范共享变量的访问方式,解决了多线程并发时的数据一致性问题。本文将从内存模型的核心目标出发,详解原子性、可见性、有序性的实现机制,以及volatile、synchronized等关键字在其中的作用。一、J
Flowable 高级扩展:自定义元素与性能优化实战
练习时长两年半的程序员小胡
Flowable 流程引擎实战指南 流程图 flowable BPMN 流程引擎 java
在前五篇文章中,我们从基础概念、流程设计、API实战、SpringBoot集成,到外部系统协同,逐步构建了Flowable的应用体系。但企业级复杂场景中,原生功能往往难以满足定制化需求——比如需要特殊的审批规则网关、与决策引擎联动实现动态路由,或是在高并发场景下优化流程引擎性能。本文将聚焦Flowable的高级扩展能力,详解如何自定义流程元素、集成规则引擎,并掌握大型系统中的性能调优策略。一、自定
二十四节气组诗 谷雨
离陌_6639
图片来源网络,若侵犯了你的权益,请联系我删除6.谷雨文/离陌背上行囊背上如行囊的我从此任行程马不停蹄今天家乡的田野春雨快马加鞭播下希望的种子观音不语目送着我和夏天一道在观音山出关图片来源网络,若侵犯了你的权益,请联系我删除你好啊,我是离陌,已然在懵懂中走过了16年的岁月,为了珍惜当下的每一秒,所以立志做一名终身学习者。文学对于我来说是一种信仰,诗歌是我的生命。人生之道,四通八达,即入文学,自当持之
Android 应用权限管理详解
文章目录1.权限类型2.权限请求机制3.权限组和分级4.权限管理的演进5.权限监控和SELinux强制访问控制6.应用权限审核和GooglePlayProtect7.开发者最佳实践8.用户权限管理9.Android应用沙箱模型10.ScopedStorage(分区存储)11.背景位置权限(BackgroundLocationAccess)12.权限回收和自动清理13.权限请求的用户体验设计14.G
uniapp微信小程序 - 详解微信小程序平台用户授权登录全流程,uniapp v3版本中小程序端开发下用户点击登录后获取手机号/昵称/性别/头像等信息完成登录(提供完整示例代码,一键复制开箱即用)
十一猫咪爱养鱼
前端组件与功能(开箱即用) uniapp常见问题解决 uniapp vue3 uniapp3小程序授权登录 微信小程序登录获取用户信息教程 获取用户昵称手机号头像信息登录 vue3版本小程序平台授权登录 uniap小程序端用户登录流程 uni完整的小程序平台登录源码
效果图在uniapp微信小程序端开发中,超详细实现用户授权登录完整功能源码,用户授权后获取手机号/昵称/头像/性别等,提供完整思路流程及逻辑讲解。uniappVue3和Vue2都能用,你也可以直接复制粘贴,然后改下参数放到你的项目中去就行。整体思路做功能之前,先来看一下整体流程是
Selenium 特殊控件操作与 ActionChains 实践详解
小馋喵知识杂货铺
selenium 测试工具
1.下拉框单选操作(a)使用SeleniumSelect类(标准HTML标签)Selenium提供了内置的Select类用于操作标准下拉框,这种方式简单且直观。fromselenium.webdriver.support.uiimportSelect#定位下拉框dropdown=Select(driver.find_element("id","dropdown_id"))#通过以下三种方式选择单个
元宇宙中的视觉技术:虚拟化身与场景生成
xcLeigh
计算机视觉CV 元宇宙 虚拟化身 场景生成 AIGC 数字孪生
元宇宙中的视觉技术:虚拟化身与场景生成前言一、元宇宙与视觉技术的深度关联1.1元宇宙概念深度剖析1.2视觉技术:元宇宙的“灵魂之窗”二、虚拟化身:数字世界的“第二自我”2.1虚拟化身技术的深度解析2.1.1核心技术构成2.1.2技术实现原理与流程2.2虚拟化身的应用领域及案例展示2.2.1游戏娱乐领域2.2.2教育培训领域三、场景生成:构建元宇宙的虚拟天地3.1场景生成技术全景透视3.1.1关键技
DPDK 技术详解:榨干网络性能的“瑞士军刀”
你是否曾感觉,即使拥有顶级的服务器和万兆网卡,你的网络应用也总是“喂不饱”硬件,性能总差那么一口气?传统的网络处理方式,就像在高速公路上设置了太多的收费站和检查点,限制了数据包的“奔跑”速度。今天,我们要深入探讨一个能够打破这些瓶颈,让你的网络应用快到飞起的“黑科技”——DPDK(DataPlaneDevelopmentKit,数据平面开发套件)。这不仅仅是一个工具包,更是一种全新的网络处理哲学。
Anaconda 和 Miniconda:功能详解与选择建议
古月฿
python入门 python conda
Anaconda和Miniconda详细介绍一、Anaconda的详细介绍1.什么是Anaconda?Anaconda是一个开源的包管理和环境管理工具,在数据科学、机器学习以及科学计算领域发挥着关键作用。它以Python和R语言为基础,为用户精心准备了大量预装库和工具,极大地缩短了搭建数据科学环境的时间。对于那些想要快速开展数据分析、模型训练等工作的人员来说,Anaconda就像是一个一站式的“数
Zread.AI:一键将GitHub项目转化为结构化中文手册的AI代码维基工具
Zread.AI:一键将GitHub项目转化为结构化中文手册的AI代码维基工具文章来源:PoixeAI文章目录Zread.AI工具概述核心功能优势亮点典型应用场景上手指南注意事项官网地址Zread.AI由智谱Z.ai推出,是一款面向开发者的AI代码维基工具,可在几秒内把任何公开GitHub仓库转化为结构化中文手册,并通过独家Buzz面板聚合commits、issues与相关新闻,让项目脉搏一目了然
Android 基础知识:Android 应用权限详解
流水mpc
android
这篇文章为大家系统的梳理一下Android权限相关的知识,在日常开发中,我们都用过权限,但是对于权限的一些细节我们可能掌握的还不够全面,这篇文章会全面的为大家介绍权限相关的知识。当然,本篇文章依然是参考了Google的官方文档:应用权限。本文目录一、认识Android权限(一)Android系统为什么需要权限?Android系统设置权限的目的是保护Android用户的隐私。对于用户的敏感数据And
面试必考题:Android Binder 机制详解
大模型大数据攻城狮
android binder 面试 react native kotlin dalvik retrofit
目录第一章:Binder的基本概念什么是Binder?多角度解读Binder第二章:Binder的工作机制Binder的整体流程服务注册:从零到有的第一步服务查询:找到目标的“地图”服务调用:请求与响应的旅程Binder驱动的幕后功劳为什么Binder这么快?第三章:Binder在系统架构中的角色Activity:界面背后的通信枢纽Binder的角色实例分析Service:后台任务的跨进程支柱Bi
Selenium基础教程
lemontree1945
selenium python 测试工具
1.Selenium环境安装1.1浏览器安装Chrome和ChromeDriver下载地址:https://googlechromelabs.github.io/chrome-for-testing/注意:驱动版本号要和浏览器版本号一致;安装后关闭浏览器自动更新:services.msc:打开系统服务找到和google相关的服务,全部修改为禁用1.2安装第三方库seleniumpipinstall
基于DeepSeek的下一代大型游戏开发革命:架构、核心技术与项目管理实践
Liudef06小白
特殊专栏 人工智能 AIGC 架构 人工智能 deepseek
基于DeepSeek的下一代大型游戏开发革命:架构、核心技术与项目管理实践DeepSeek大模型正重塑游戏开发范式,本文将深入解析如何利用这一革命性技术构建下一代大型游戏,涵盖从架构设计到项目管理的全流程实践。目录DeepSeek游戏引擎核心架构1.1神经符号系统融合架构1.2动态世界生成引擎智能NPC与剧情系统2.1角色人格建模技术2.2动态叙事生成算法大型项目管理体系3.1敏捷-AI混合开发流
Flutter权限插件详解:permission_handler使用指南
AI移动开发前沿
AI移动端开发宝典 flutter ai
Flutter权限插件详解:permission_handler使用指南关键词:Flutter、权限插件、permission_handler、权限管理、移动开发摘要:本文围绕Flutter开发中常用的权限插件permission_handler展开详细介绍。首先阐述了在Flutter应用开发中处理权限的背景和重要性,接着深入解析permission_handler的核心概念、架构以及工作原理,通
lesson20:Python函数的标注
你的电影很有趣
python 开发语言
目录引言:为什么函数标注是现代Python开发的必备技能一、函数标注的基础语法1.1参数与返回值标注1.2支持的标注类型1.3Python3.9+的重大改进:标准集合泛型二、高级标注技巧与最佳实践2.1复杂参数结构标注2.2函数类型与回调标注2.3变量注解与类型别名三、静态类型检查工具应用3.1mypy:最流行的类型检查器3.2Pyright与IDE集成3.3运行时类型验证四、函数标注的工程价值与
大数据技术笔记—spring入门
卿卿老祖
篇一spring介绍spring.io官网快速开始Aop面向切面编程,可以任何位置,并且可以细致到方法上连接框架与框架Spring就是IOCAOP思想有效的组织中间层对象一般都是切入service层spring组成前后端分离已学方式,前后台未分离:Spring的远程通信:明日更新创建第一个spring项目来源:科多大数据
为母则刚
妩语
在成为母亲之前,大多数女人都是柔弱、渴求被呵护的,当了妈妈以后,却一个个仿佛化身无敌铁金刚,能文能武,能举能抬,文韬武略,无所不能。即使我的性格开朗乐观,但内心仍有一部分柔弱需要人保护,那时怎么也没有想到,自己能一个人担负起养育孩子的责任,除了经济来源,孩子的吃喝拉撒睡都靠自己一个人完成,在没有车的日子里,左手抱着孩子,右手拎着大包行李,背后还背着一大袋备用物品,寒冬腊月,酷暑严寒,挤着公车来来去
C++中std::variant的使用详解和实战代码示例
点云SLAM
C++ c++ 开发语言 variant C++泛型编程 联合体 C++ 类型擦除机制 C++17
std::variant是C++17引入的一个类型安全的联合体(type-safeunion),它可以在多个类型之间存储一个值,并在编译时进行类型检查。它是现代C++类型擦除与泛型编程的核心工具之一,适用于构建可变类型结构、消息传递系统、状态机等。一、基本概念#includestd::variantv;类似于联合体union,但类型安全。std::variant只能存储其中一个类型的值。默认构造时
前端数据库:IndexedDB从基础到高级使用指南
文章目录前端数据库:IndexedDB从基础到高级使用指南引言一、IndexedDB概述1.1什么是IndexedDB1.2与其他存储方案的比较二、基础使用2.1打开/创建数据库2.2基本CRUD操作添加数据读取数据更新数据删除数据三、高级特性3.1复杂查询与游标3.2事务高级用法3.3性能优化技巧四、实战案例:构建离线优先的待办事项应用4.1数据库设计4.2同步策略实现五、常见问题与解决方案5.
全局修改GitLab14默认语言为中文
GitLab安装成功后默认语言是英语,只有登录后才能手动指定为中文,且这个配置只对自己生效,经查阅资料后,总结全局修改GitLab14默认语言为中文方法如下:0.进入容器如果你用Docker部署的GitLab,那么需要使用命令sudodockerexec-itgitlab/bin/bash进入容器1.修改rails配置文件打开/opt/gitlab/embedded/service/gitlab-
C语言结构体详解
初学者,亦行者
C语言学习 算法 数据结构 c语言
目录C语言结构体1、声明结构体类型2、定义结构体变量3、成员的赋值与引用4、结构体数组5、结构体指针6、总结C语言结构体1、声明结构体类型前面学习了数组是一组相同类型数据的集合。但在实际应用中,我们往往会遇到不同类型的数据。而结构体就是用来存放不同数据的。#includeintmain(){structStu{intnum;//学号为整型charname[20];//姓名为字符串charsex;/
茶叶的保存和冲泡
波旁只想好生活
曾经,人们质疑过咖啡和茶会引发多种疾病,现在这种观点已经被澄清了。咖啡已被认为是美式饮食中抗氧化物的重要来源,中度烘烤的咖啡抗氧化物活性最高。而红茶和绿茶也都含有丰富的抗氧化物和其他具有保护效用的酚类化合物,这些成分似乎都能减少动脉受损,降低癌症风险。不过,万事皆有两面性。有几种冲煮咖啡仍然有一定的负面作用,对血胆固醇含量有不利的影响。其中的咖啡油醇和咖啡白脂两种脂质会提高胆固醇含量,如果冲煮过程
登录功能详解
开往1982
java 登录 spring boot
本项目由maven项目改造springboot项目导入依赖org.springframework.bootspring-boot-starter-parent2.7.6org.springframework.bootspring-boot-starter-web2.7.6org.springframework.bootspring-boot-starter-test2.7.5org.springf
从零到一:基于差分隐私决策树的客户购买预测系统实战开发
笙囧同学
决策树 算法 机器学习
作者简介:笙囧同学,中科院计算机大模型方向硕士,全栈开发爱好者联系方式:
[email protected] 各大平台账号:笙囧同学座右铭:偷懒是人生进步的阶梯文章导航快速导航前言-项目背景与价值项目概览-系统架构与功能技术深度解析-核心算法原理️系统实现详解-工程实践细节性能评估与分析-实验结果分析Web系统开发-前后端开发部署与运维-DevOps实践完整复现指南-手把手教程️实践案例与故障排除-问
Claude Code 超详细完整指南(2025最新版)
笙囧同学
python
终端AI编程助手|高频使用点+生态工具+完整命令参考+最新MCP配置目录快速开始(5分钟上手)详细安装指南系统要求Windows安装(WSL方案)macOS安装Linux安装安装验证配置与认证首次认证环境变量配置代理配置⚡基础命令详解启动命令会话管理文件操作Think模式完全指南MCP服务器配置详解MCP基础概念添加MCP服务器10个必备MCP服务器MCP故障排除记忆系统详解高级使用技巧成本控制策
CMS垃圾回收器+G1垃圾回收器+ZGC垃圾回收器详解及对比
weixin_43751710
jvm java 算法
一、CMS收集器CMS(ConcurrentMarkSweep)收集器是一种以获取最短回收停顿时间为目标的收集器,是一款针对老年代的垃圾回收器,一般和Parallel回收器(一款新生代回收器,是使用复制算法的收集器,又是并行的多线程收集器,收集时会Stoptheworld)配合使用。1.工作过程从名字(包含“MarkSweep”)上就可以看出CMS收集器是基于标记-清除算法实现的,它的运作整个过程
PaddleOCR 快速开始
张欣-男
PaddlePaddle PaddleOCR OCR
1.安装1.1安装PaddlePaddle#GPUcudapipinstallpaddlepaddle-gpu#CPUpipinstallpaddlepaddle1.2安装PaddleOCRwhl包pipinstallpaddleocr2.便捷使用2.1命令行使用2.1.1中英文模型检测+方向分类器+识别全流程:–use_angle_clstrue设置使用方向分类器识别180度旋转文字,–use_
基于Python引擎的PP-OCR模型库推理
张欣-男
python ocr 开发语言 PaddleOCR PaddlePaddle
基于Python引擎的PP-OCR模型库推理1.文本检测模型推理#下载超轻量中文检测模型:wgethttps://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tartarxfch_PP-OCRv3_det_infer.tarpython3tools/infer/predict_det.py--image_dir=".
Js函数返回值
_wy_
js return
一、返回控制与函数结果,语法为:return 表达式;作用: 结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二、返回控制语法为:return;作用: 结束函数执行,返回调用函数,而且把undefined作为函数的结果 在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.例如,默认情况下点击一个<a>元素,页面会跳转到该元素href属性
MySQL 的 char 与 varchar
bylijinnan
mysql
今天发现,create table 时,MySQL 4.1有时会把 char 自动转换成 varchar
测试举例:
CREATE TABLE `varcharLessThan4` (
`lastName` varchar(3)
) ;
mysql> desc varcharLessThan4;
+----------+---------+------+-
Quartz——TriggerListener和JobListener
eksliang
TriggerListener JobListener quartz
转载请出自出处:http://eksliang.iteye.com/blog/2208624 一.概述
listener是一个监听器对象,用于监听scheduler中发生的事件,然后执行相应的操作;你可能已经猜到了,TriggerListeners接受与trigger相关的事件,JobListeners接受与jobs相关的事件。
二.JobListener监听器
j
oracle层次查询
18289753290
oracle;层次查询;树查询
.oracle层次查询(connect by)
oracle的emp表中包含了一列mgr指出谁是雇员的经理,由于经理也是雇员,所以经理的信息也存储在emp表中。这样emp表就是一个自引用表,表中的mgr列是一个自引用列,它指向emp表中的empno列,mgr表示一个员工的管理者,
select empno,mgr,ename,sal from e
通过反射把map中的属性赋值到实体类bean对象中
酷的飞上天空
javaee 泛型 类型转换
使用过struts2后感觉最方便的就是这个框架能自动把表单的参数赋值到action里面的对象中
但现在主要使用Spring框架的MVC,虽然也有@ModelAttribute可以使用但是明显感觉不方便。
好吧,那就自己再造一个轮子吧。
原理都知道,就是利用反射进行字段的赋值,下面贴代码
主要类如下:
import java.lang.reflect.Field;
imp
SAP HANA数据存储:传统硬盘的瓶颈问题
蓝儿唯美
HANA
SAPHANA平台有各种各样的应用场景,这也意味着客户的实施方法有许多种选择,关键是如何挑选最适合他们需求的实施方案。
在 《Implementing SAP HANA》这本书中,介绍了SAP平台在现实场景中的运作原理,并给出了实施建议和成功案例供参考。本系列文章节选自《Implementing SAP HANA》,介绍了行存储和列存储的各自特点,以及SAP HANA的数据存储方式如何提升空间压
Java Socket 多线程实现文件传输
随便小屋
java socket
高级操作系统作业,让用Socket实现文件传输,有些代码也是在网上找的,写的不好,如果大家能用就用上。
客户端类:
package edu.logic.client;
import java.io.BufferedInputStream;
import java.io.Buffered
java初学者路径
aijuans
java
学习Java有没有什么捷径?要想学好Java,首先要知道Java的大致分类。自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE
APP推广
aoyouzi
APP 推广
一,免费篇
1,APP推荐类网站自主推荐
最美应用、酷安网、DEMO8、木蚂蚁发现频道等,如果产品独特新颖,还能获取最美应用的评测推荐。PS:推荐简单。只要产品有趣好玩,用户会自主分享传播。例如足迹APP在最美应用推荐一次,几天用户暴增将服务器击垮。
2,各大应用商店首发合作
老实盯着排期,多给应用市场官方负责人献殷勤。
3,论坛贴吧推广
百度知道,百度贴吧,猫扑论坛,天涯社区,豆瓣(
JSP转发与重定向
百合不是茶
jsp servlet Java Web jsp转发
在servlet和jsp中我们经常需要请求,这时就需要用到转发和重定向;
转发包括;forward和include
例子;forwrad转发; 将请求装法给reg.html页面
关键代码;
req.getRequestDispatcher("reg.html
web.xml之jsp-config
bijian1013
java web.xml servlet jsp-config
1.作用:主要用于设定JSP页面的相关配置。
2.常见定义:
<jsp-config>
<taglib>
<taglib-uri>URI(定义TLD文件的URI,JSP页面的tablib命令可以经由此URI获取到TLD文件)</tablib-uri>
<taglib-location>
TLD文件所在的位置
JSF2.2 ViewScoped Using CDI
sunjing
CDI JSF 2.2 ViewScoped
JSF 2.0 introduced annotation @ViewScoped; A bean annotated with this scope maintained its state as long as the user stays on the same view(reloads or navigation - no intervening views). One problem w
【分布式数据一致性二】Zookeeper数据读写一致性
bit1129
zookeeper
很多文档说Zookeeper是强一致性保证,事实不然。关于一致性模型请参考http://bit1129.iteye.com/blog/2155336
Zookeeper的数据同步协议
Zookeeper采用称为Quorum Based Protocol的数据同步协议。假如Zookeeper集群有N台Zookeeper服务器(N通常取奇数,3台能够满足数据可靠性同时
Java开发笔记
白糖_
java开发
1、Map<key,value>的remove方法只能识别相同类型的key值
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"a");
map.put(2,"b");
map.put(3,"c"
图片黑色阴影
bozch
图片
.event{ padding:0; width:460px; min-width: 460px; border:0px solid #e4e4e4; height: 350px; min-heig
编程之美-饮料供货-动态规划
bylijinnan
动态规划
import java.util.Arrays;
import java.util.Random;
public class BeverageSupply {
/**
* 编程之美 饮料供货
* 设Opt(V’,i)表示从i到n-1种饮料中,总容量为V’的方案中,满意度之和的最大值。
* 那么递归式就应该是:Opt(V’,i)=max{ k * Hi+Op
ajax大参数(大数据)提交性能分析
chenbowen00
Web Ajax 框架 浏览器 prototype
近期在项目中发现如下一个问题
项目中有个提交现场事件的功能,该功能主要是在web客户端保存现场数据(主要有截屏,终端日志等信息)然后提交到服务器上方便我们分析定位问题。客户在使用该功能的过程中反应点击提交后反应很慢,大概要等10到20秒的时间浏览器才能操作,期间页面不响应事件。
根据客户描述分析了下的代码流程,很简单,主要通过OCX控件截屏,在将前端的日志等文件使用OCX控件打包,在将之转换为
[宇宙与天文]在太空采矿,在太空建造
comsci
我们在太空进行工业活动...但是不太可能把太空工业产品又运回到地面上进行加工,而一般是在哪里开采,就在哪里加工,太空的微重力环境,可能会使我们的工业产品的制造尺度非常巨大....
地球上制造的最大工业机器是超级油轮和航空母舰,再大些就会遇到困难了,但是在空间船坞中,制造的最大工业机器,可能就没
ORACLE中CONSTRAINT的四对属性
daizj
oracle CONSTRAINT
ORACLE中CONSTRAINT的四对属性
summary:在data migrate时,某些表的约束总是困扰着我们,让我们的migratet举步维艰,如何利用约束本身的属性来处理这些问题呢?本文详细介绍了约束的四对属性: Deferrable/not deferrable, Deferred/immediate, enalbe/disable, validate/novalidate,以及如
Gradle入门教程
dengkane
gradle
一、寻找gradle的历程
一开始的时候,我们只有一个工程,所有要用到的jar包都放到工程目录下面,时间长了,工程越来越大,使用到的jar包也越来越多,难以理解jar之间的依赖关系。再后来我们把旧的工程拆分到不同的工程里,靠ide来管理工程之间的依赖关系,各工程下的jar包依赖是杂乱的。一段时间后,我们发现用ide来管理项程很不方便,比如不方便脱离ide自动构建,于是我们写自己的ant脚本。再后
C语言简单循环示例
dcj3sjt126com
c
# include <stdio.h>
int main(void)
{
int i;
int count = 0;
int sum = 0;
float avg;
for (i=1; i<=100; i++)
{
if (i%2==0)
{
count++;
sum += i;
}
}
avg
presentModalViewController 的动画效果
dcj3sjt126com
controller
系统自带(四种效果):
presentModalViewController模态的动画效果设置:
[cpp]
view plain
copy
UIViewController *detailViewController = [[UIViewController al
java 二分查找
shuizhaosi888
二分查找 java二分查找
需求:在排好顺序的一串数字中,找到数字T
一般解法:从左到右扫描数据,其运行花费线性时间O(N)。然而这个算法并没有用到该表已经排序的事实。
/**
*
* @param array
* 顺序数组
* @param t
* 要查找对象
* @return
*/
public stati
Spring Security(07)——缓存UserDetails
234390216
ehcache 缓存 Spring Security
Spring Security提供了一个实现了可以缓存UserDetails的UserDetailsService实现类,CachingUserDetailsService。该类的构造接收一个用于真正加载UserDetails的UserDetailsService实现类。当需要加载UserDetails时,其首先会从缓存中获取,如果缓存中没
Dozer 深层次复制
jayluns
VO maven po
最近在做项目上遇到了一些小问题,因为架构在做设计的时候web前段展示用到了vo层,而在后台进行与数据库层操作的时候用到的是Po层。这样在业务层返回vo到控制层,每一次都需要从po-->转化到vo层,用到BeanUtils.copyProperties(source, target)只能复制简单的属性,因为实体类都配置了hibernate那些关联关系,所以它满足不了现在的需求,但后发现还有个很
CSS规范整理(摘自懒人图库)
a409435341
html UI css 浏览器
刚没事闲着在网上瞎逛,找了一篇CSS规范整理,粗略看了一下后还蛮有一定的道理,并自问是否有这样的规范,这也是初入前端开发的人一个很好的规范吧。
一、文件规范
1、文件均归档至约定的目录中。
具体要求通过豆瓣的CSS规范进行讲解:
所有的CSS分为两大类:通用类和业务类。通用的CSS文件,放在如下目录中:
基本样式库 /css/core
C++动态链接库创建与使用
你不认识的休道人
C++ dll
一、创建动态链接库
1.新建工程test中选择”MFC [dll]”dll类型选择第二项"Regular DLL With MFC shared linked",完成
2.在test.h中添加
extern “C” 返回类型 _declspec(dllexport)函数名(参数列表);
3.在test.cpp中最后写
extern “C” 返回类型 _decls
Android代码混淆之ProGuard
rensanning
ProGuard
Android应用的Java代码,通过反编译apk文件(dex2jar、apktool)很容易得到源代码,所以在release版本的apk中一定要混淆一下一些关键的Java源码。
ProGuard是一个开源的Java代码混淆器(obfuscation)。ADT r8开始它被默认集成到了Android SDK中。
官网:
http://proguard.sourceforge.net/
程序员在编程中遇到的奇葩弱智问题
tomcat_oracle
jquery 编程 ide
现在收集一下:
排名不分先后,按照发言顺序来的。
1、Jquery插件一个通用函数一直报错,尤其是很明显是存在的函数,很有可能就是你没有引入jquery。。。或者版本不对
2、调试半天没变化:不在同一个文件中调试。这个很可怕,我们很多时候会备份好几个项目,改完发现改错了。有个群友说的好: 在汤匙
解决maven-dependency-plugin (goals "copy-dependencies","unpack") is not supported
xp9802
dependency
解决办法:在plugins之前添加如下pluginManagement,二者前后顺序如下:
[html]
view plain
copy
<build>
<pluginManagement