当(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)
射频微波电路设计【1.2】
BinaryStarXin
硬件设计提升之路 通信射频相控阵-软硬技术提升篇 电路与系统的噪声 传输线理论与散射参数 终端传输线方程 耦合传输线 射频微波电路设计 射频工程 硬件工程
射频扼流圈——RFC在RF电路中同样起着举足轻重的作用。理论上,RFC对交流电流呈现无穷大的阻抗,即ωLRFC→∞,对直流电流呈现的直流电阻为零,即直流电流畅通无阻。而在RF电路工程中是做不到这些的,RFC呈现有限的阻抗值,且具有直流电阻,并对流过的直流电流的大小有限制。RFC电感值的选取类似于隔直电容器容量的选择,它应满足式(1-12)[见图1.14c]:RFC电感线圈的选取要更加当心,主要原因
《Java语言程序设计》(基础篇原书第10版)第一章复习题答案
第一章1.1:硬件包括计算机中可以看得见的物理部分,而软件提供看不见的指令,这些指令控制硬件并且使得硬件完成特定的任务。1.2:中央处理器(CPU)内存(主存)存储设备(例如,磁盘和光盘)输入设备(例如,鼠标和键盘)输出设备(例如,显示器和打印机)通信设备(例如,调制解调器和网卡)1.3:代表电脑中央处理器。1.4:速度衡量单位是赫兹,1赫兹相当于每秒一个脉冲。20世纪90年代计算机的时钟速度通常
暑期自学嵌入式——Day02(C语言阶段)
一位搞嵌入式的 genius
嵌入式自学专栏 linux 嵌入式C语言
点关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!!主页:一位搞嵌入式的genius-CSDN博客https://blog.csdn.net/m0_73589512?spm=1000.2115.3001.5343目录Day02→数据类型(上)数据类型分类基本数据类型整形数据类型字符型数据类型实型数据类型构造数据类型特殊数据类型布尔类型详解基本概念使用注意事项预处理分析知识小结Day
暑期自学嵌入式——Day04(C语言阶段)
一位搞嵌入式的 genius
嵌入式自学专栏 嵌入式C语言 linux
点关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!!目录C语言控制语句控制语句if(上)一、控制语句分类1.基本结构与学习要求2.分支语句3.循环语句4.学习方法建议二、分支语句:if-else详解1.if语句概述2.if语句的常见形式(1)简化形式(省略else)(2)阶梯形式(elseif多分支)3.应用案例:输入分数评级题目要求设计思路与代码实现关键解析4.if语句的嵌套形式
CentOS7下Systemctl详解
JerryAi
一、Systemd简介Systemd是由红帽公司的一名叫做LennartPoettering的员工开发,systemd是Linux系统中最新的初始化系统(init),它主要的设计目的是克服SysV固有的缺点,提高系统的启动速度,systemd和upstart是竞争对手,ubantu上使用的是upstart的启动方式,centos7上使用systemd替换了SysV,Systemd目录是要取代Uni
阿里云服务器4核8G配置可选实例规格详解及优惠价格表(2023年新版)
阿里云最新优惠和活动汇总
阿里云服务器4核8G配置多少钱?可选实例规格有哪些?根据阿里云公布的2023年新版收费标准及活动价格来看,阿里云服务器4核8G最低活动价格是75.06元3个月,年付最低1200.96元1年。阿里云服务器4核8G配置的可选的规格有18个,不同实例的价格有所不同,下面是4核8G配置可选实例规格详解及优惠价格表。阿里云服务器4核8G配置可选实例规格有哪些?在2023年,阿里云服务器4核8G配置可选的实例
网络爬虫-07
YEGE学AI算法
Python-网络爬虫
网络爬虫-07)**Spider06回顾****scrapy框架****完成scrapy项目完整流程****我们必须记住****爬虫项目启动方式****数据持久化存储****Spider07笔记****分布式爬虫****scrapy_redis详解****腾讯招聘分布式改写****机器视觉与tesseract****补充-滑块缺口验证码案例****豆瓣网登录****Fiddler抓包工具****移
STM32F103R6的Keil和Protues仿真-点亮LED灯
怎么就重名了
stm32 嵌入式硬件 单片机
STM32F103R6的Keil和Protues仿真-点亮LED灯STM32F103R6的Keil和Protues仿真-点亮LED灯1、效果1.1、低电平点亮1.2、高电平点亮2、代码2.1、Keil2.2、protueshttps://gitee.com/xiaolixi/l-stm32/tree/master/STM32Protues/diandeng-lowhttps://gitee.com
抽象类与接口详解
晚•夜
java基础知识 开发语言
抽象类与接口1.抽象类1.定义抽象类2.抽象方法3.继承抽象类4.实例化子类5.抽象类的作用2.接口1.定义接口2.实现接口3.接口的作用4.默认方法与静态方法3.相同点与不同点1.相同点:2.不同点(区别):1.抽象类抽象类是面向对象编程中的一个重要概念,它用于定义不能被实例化的类。抽象类主要用于建立类的继承关系和定义公共的属性和方法,它为子类提供了一个共同的模板。下面是一些关于抽象类的介绍:1
Redis-redis.conf 详解
Hollow_Knight
##############################################基本设置#########################################redis默认是不作为守护进程来运行的,如果你需要可以改为'yes'(设置为守护进程)#当作为守护进程时,redis会把进程ID写到/var/run/redis.pid(默认)文件中daemonizeno(一般改为ye
Redis性能测试:工具、参数与实战示例
Seal^_^
数据库专栏 # 数据库--Redis redis 数据库 Redis性能测试
Redis性能测试:工具、参数与实战示例1.Redis性能测试概述2.redis-benchmark基础使用2.1基本语法2.2简单示例3.性能测试参数详解4.实战测试示例4.1基础测试4.2指定命令测试4.3带随机key的测试4.4大数据测试4.5管道测试5.性能测试流程图6.测试结果分析与优化建议6.1结果解读6.2优化建议7.高级测试场景7.1持久化影响测试7.2集群测试7.3长时间稳定性测
第二十四篇 Requests+BeautifulSoup,秒抓网站信息!你的智能信息收集器!
爱分享的飘哥
日常效率自动化 beautifulsoup Python爬虫 Requests 数据抓取 办公自动化 信息收集
python爬虫序言:手动复制粘贴网页数据?效率太低了1.网页数据抓取基础:HTTP请求与网页结构速览1.1HTTP请求:浏览器如何和网页交互?1.2网页结构:HTML,信息的载体2.Requests库:发送网络请求的利器2.1安装与基础用法:你的第一个HTTP请求2.2处理请求头与参数:模拟浏览器访问3.BeautifulSoup:解析网页的利器3.1安装与基础用法:快速解析HTML内容3.2精
Anime.js 超级炫酷的网页动画库详解
伍哥的传说
前端源码分享 javascript 开发语言 ecmascript anime.js timeline animate
简介Anime.js是一个轻量级的JavaScript动画库,它提供了简单而强大的API来创建各种复杂的动画效果。以下是Anime.js的主要使用方法和特性:安装npminstallanimejs示例基本用法import{animate,createScope,createSpring,createDraggable}from"animejs";import{useEffect,useRef,us
Docker架构深度解析:从核心概念到企业级实践
Docker架构深度解析:从核心概念到企业级实践一、Docker架构全景图1.1整体架构示意图二、核心组件深度解析2.1DockerDaemon工作机制三、镜像与容器原理3.1镜像分层结构3.2容器生命周期四、网络架构详解4.1网络模式对比4.2Bridge网络实现原理五、存储架构与实践5.1存储驱动对比5.2数据卷使用模式六、企业级实践方案6.1高可用架构设计七、安全最佳实践7.1安全防护体系八
Proto文件从入门到精通——现代分布式系统通信的基石(含实战案例)
筏.k
gRPC c++ rpc 服务器
gRPC核心技术详解:Proto文件从入门到精通——现代分布式系统通信的基石(含实战案例)更新时间:2025年7月18日️标签:gRPC|ProtocolBuffers|Proto文件|微服务|分布式系统|RPC通信|接口定义文章目录前言一、基础概念:Proto文件究竟是什么?1.什么是Proto文件?2.传统通信vsProto通信二、语法详解:Proto文件的构成要素1.基本语法结构2.数据类型
初识linux(一):全面了解linux目录结构&基础操作指令详解
whelloworldw
linux系统编程 linux 运维 服务器
今天小风将带着大家进行有关liunx部分章节的学习,由于是第一节初识linux部分的内容,所以内容理解起来并不会太过困难。在本篇博客中,小风将向大家具体讲解一下内容:初识Linux操作系统初识Xshell登录命令,简单了解一下操作系统基本概念使用常用Linux命令,了解linux系统目录结构和访问方式一、初识linux操作系统1.linux发展史1991年10月5日,赫尔辛基大学的一名研究生Lin
【月光】蜥勘
百年坑人老字号
*灵感来源于德彪西作曲《月光》———————————————诺顿讨厌——应该说是害怕黑暗与封闭的环境,这是连监管者都知道的事情。他的房间永远充斥着温柔的光亮,即使在他睡着时也一样。但现在不同了。那个房间自那场游戏过后就再也没有透出光线,只有每晚皎洁的月光穿过窗纱照进房间,柔和,寂静,阴冷。地图是里奥的回忆,很冷,很黑,四周像是一只只张开血盆大口的猛兽正等待着单纯的猎物送上前来。唯一的光源是一轮明月
java cas aba问题_Java CAS操作的ABA问题
自考大三学狗
java cas aba问题
CAS介绍比较并交换(compareandswap,CAS),是原子操作的一种,可用于在多线程编程中实现不被打断的数据交换操作,从而避免多线程同时改写某一数据时由于执行顺序不确定性以及中断的不可预知性产生的数据不一致问题。CAS操作基于CPU提供的原子操作指令实现,各个编译器根据这个特点实现了各自的原子操作函数。来源维基百科:C语言:由GNU提供了对应的__sync系列函数完成原子操作。Windo
Gitee和GitHub的主要区别
Botiway
FlaskWeb 云计算 gitee github python
Gitee和GitHub的主要区别体现在以下几个方面:服务器位置与访问速度GitHub:服务器位于美国,全球用户访问速度较快,但国内用户可能遇到访问缓慢或不稳定情况。Gitee:服务器在中国,国内用户访问速度更快,稳定性更高。用户群体与社区GitHub:拥有全球最大的开发者社区,用户遍布世界各地,国际化程度高,汇聚了大量知名开源项目和顶尖开发者。Gitee:主要面向中国用户,社区以中文为主,更符合
CVE-2005-4900:TLS SHA-1 安全漏洞修复详解
Nova_CaoFc
运维日常 技术博文分享 安全 linux 服务器 运维
前言在信息安全日益重要的当下,任何微小的加密弱点都可能被攻击者利用,从而导致数据泄露、流量劫持或更严重的业务中断。本文将结合实际环境中常见的Nginx配置示例,深入剖析CVE-2005-4900(TLS中使用SHA-1哈希算法)的危害,并提供完整、可操作的修复流程。一、什么是CVE-2005-4900漏洞CVE-2005-4900定位于TLS协议中使用SHA-1作为消息认证和签名哈希算法的安全漏洞
洛谷二分查找题目详解
方俊涵
算法 c++ 数据结构
B3881[信息与未来2015]拴奶牛题目描述有n头奶牛,有k个木桩,每个木桩有一个位置,一个木桩上只能拴一头奶牛。由于奶牛好斗,所以在拴奶牛的时候,要求距离最近的奶牛的距离尽可能大。例如n=4,k=6,木桩的位置为0,3,4,7,8,9,此时为下图。OllOOllOOO034789有许多种拴牛方案,例如:0,3,4,9:此时最近距离为1(3,4之间);0,3,7,9:此时最近距离为2。输入格式三
大学生如何兼职赚钱,你也可以10W+
书蓝爱写
作为一个农村出来的娃,估计都会有2个心愿:一个是走出乡镇进入大城市生活;另一个就是通过自己的努力争取在25岁之前赚到人生的第一个10万元。大学的时候,我因为偶然,我接触到了公众号写作赚稿费。没想到,我的写作时间已经超过6年了。大学期间,有过屡次的拒稿,无数次的灰心,也想过放弃,但是,大学生活我唯一的收入来源只有写稿,只能坚持写下去。在写作100天里,一共输10万多字,在第25篇文章时,终于过稿了,
C# 函数memcpy和memmove的使用和模拟实现(详解)
muzi_liii
c# c语言
内存函数memcpy函数memmove函数memcpy函数memcpy——内存拷贝(负责不重叠的内存拷贝)函数定义:void*memcpy(void*destination,constvoid*source,size_tnum);//从source的位置开始复制num个字节个数到destination指向的内存中//num代表要拷贝的字节数//返回的是detination的起始地址memcpy的使
尚硅谷C语言笔记-结构体与共用体
想名困难户
尚硅谷C语言笔记 c语言 笔记
1、结构体(struct)类型的基本使用1.1为什么需要结构体?C语言内置的数据类型,除了几种原始的基本数据类型,只有数组属于复合类型,可以同时包含多个值,但是只能包含相同类型的数据,实际使用场景受限。1.2结构体的理解C语言提供了struct关键字,允许自定义复合数据类型,将不同类型的值组合在一起,这种类型称为结构体(structure)类型。C语言没有其他语言的对象(object)和类(cla
HDMI、DisplayPort、USB-C 不同版本对比:带宽、刷新率、协议版本详解
TESmart碲视
KVM切换器领域相关技术 电脑 计算机外设 智能硬件 物联网
一、接口概览:HDMI、DP接口、USB-C到底是干嘛的?接口名称主要功能常见设备支持传输内容HDMI(High-DefinitionMultimediaInterface高清多媒体接口)专为高清音视频传输设计电视、显示器、显卡、游戏主机视频+音频DP(DisplayPort显示端口)高性能视频输出接口显卡、显示器、扩展坞视频+音频USB-C(带DPAlt模式支持DP替代模式)多功能数据传输接口笔
Python 桌面版 数独游戏(一版)
香蕉可乐荷包蛋
# 数独 python 游戏 java
设计思路详解:Python桌面版数独游戏1.功能需求分析构建一个9x9的数独游戏界面。支持玩家手动输入数字。提供两个按钮:“重新开始本局”:恢复当前棋盘到初始状态(保留原始数字)。“生成新棋局”:生成一个新的随机数独题目。使用标准库实现,无需额外安装。2.技术选型使用tkinter:Python标准GUI库,适合小型桌面应用。使用random和copy:用于生成数独题目和深拷贝原始题目。采用回溯算
【vLLM 学习】Encoder Decoder Multimodal
HyperAI超神经
vLLM vLLM KV缓存 大语言模型 推理加速 内存管理 开源项目 在线教程
vLLM是一款专为大语言模型推理加速而设计的框架,实现了KV缓存内存几乎零浪费,解决了内存管理瓶颈问题。更多vLLM中文文档及教程可访问→https://vllm.hyper.ai/*在线运行vLLM入门教程:零基础分步指南源码examples/offline_inference/encoder_decoder_multimodal.py#SPDX-License-Identifier:Apach
Linux常用命令——touch 命令详解
Darrich
Linux命令大全 linux 运维 服务器 ubuntu centos kylin ssh 1024程序员节
Linux常用命令——touch详解命令介绍:touch命令是Linux系统中的一个非常基础但也非常有用的命令,它主要用于创建空文件和更新文件的访问时间和修改时间。基本语法:touch[选项]文件名常用选项和参数:-a:只更新文件的访问时间,不改变修改时间。touch-amyfile.txt-m:只更新文件的修改时间,不改变访问时间touch-mmyfile.txt-c或--no-create:如
什么是高防 IP?从技术原理到实战部署的深度解析
快快网络-三七
业务安全 服务器 ip 快快网络 高防IP 快快云 弹性云 云计算
目录前言一、高防IP的定义与核心价值二、高防IP的技术原理与架构2.1流量牵引技术2.2流量清洗引擎2.3回源机制三、高防IP的核心防护技术详解3.1DDoS攻击防御技术3.2高防IP的弹性带宽设计四、实战:基于Linux的高防IP环境配置4.1配置高防IP回源白名单4.2配置TCP抗攻击参数4.3高防IP与Nginx的配合配置五、高防IP的选型与部署建议总结前言在网络攻击日益频繁的今天,DDoS
六项精进
琪琪兒
公司:宁波市镇海承迪文具有限公司【日精进打卡第146天】一、【知~学习】1:《六项精进》诵读0遍共30遍2:《大学》诵读1遍共221遍【经典名句分享】曾经以为“老去”是很遥远的事情,突然发现“年轻”已经是很久以前的事了…时光好不经用抬眼已然半生!!很多付出,可能永远都没有回报,但依旧乐意全情付出,是要为了给自己内心一个交代。二:【行及践行】1、修身(对自己)1.1吃好吃的1.2喝好多水1.3走了好
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