1.ç¨reactåwindows软件ï¼
2.å¦ä½ç¼è¯java
3.å¦ä½å¨OpenWRTç¯å¢ä¸åå¼å
ç¨reactåwindows软件ï¼
å¨windowsä¸ç¨reactnativeåçç¨åºå¯ä»¥å¨iosä¸ç¨ä¹
ReactNativeç»åäºWebåºç¨åNativeåºç¨çä¼å¿ï¼å¯ä»¥ä½¿ç¨JavaScriptæ¥å¼åiOSåAndroidåçåºç¨ãå¨JavaScriptä¸ç¨Reactæ½è±¡æä½ç³»ç»åççUIç»ä»¶ï¼ä»£æ¿DOMå ç´ æ¥æ¸²æçãReactNativeä½¿ä½ è½å¤ä½¿ç¨åºäºJavaScriptåReactä¸è´çå¼åä½éªå¨æ¬å°å¹³å°ä¸æ建ä¸çä¸æµçåºç¨ç¨åºä½éªãReactNativeæéç¹æ¾å¨ææå¼å人åå ³å¿çå¹³å°çå¼åæçä¸ââå¼åè åªéå¦ä¹ ä¸ç§è¯è¨å°±è½è½»æ为任ä½å¹³å°é«æå°ç¼å代ç ãFacebookå¨å¤ä¸ªåºç¨ç¨åºäº§åä¸ä½¿ç¨äºReactNativeï¼å¹¶å°ç»§ç»ä¸ºReactNativeæèµãå ¶å¥½å¤æ¾èæè§ï¼åå°äºäººåãèçäºæ¶é´ãé¿å äºiOSä¸Androidçæ¬åå¸çæ¶é´å·®ï¼å¼åæ°åè½å¯ä»¥æ´è¿ éãä¸é¢ï¼æ们å¯ä»¥å°è¯ç¨ReactNativeå建ä¸ä¸ªiOSAPP.å¨æ们å¼å§ä¹åï¼æ建议ï¼ä½ å¯ä»¥å¨Githubéå ä¸è½½ReactNativeç代ç æ¡æ¶ãéé¢è¿æä¸äºç¤ºä¾é¡¹ç®ï¼ç游æï¼Moviesï¼ä¸ä¸ªççµå½±çAPPï¼,源码ANDROID源码学习appSampleApp,TicTacToe(ä¸æ¬¾æ¸¸æ)åUIExplorerï¼è½æ¾ç¤ºåºææç¨ReactNativeæ¿ä»£çæ§ä»¶ï¼å¦ListViewï¼TabBarï¼MapView,Sliderï¼ï¼ï¼å¯¹äºå¦ä¹ ç¨å¦ä½ç¨ReactNativeå建UI,è¿äºé½æ¯é常好çä¾å,å°¤å ¶æ¯UIExplorerAPPï¼å®å ä¹ç¨å°äºæ¯ä¸ä¸ªæ¨çAPPä¸éè¦å建çUIæ§ä»¶ãåçä¸å®¹æ,å¸æè½å¸®å°æ¨,满æ请帮å¿é纳ä¸ä¸ï¼è°¢è°¢
windowsä¸æ建reactnaticeæä¹è¿è£ python
1.å®è£ Python
1ï¼ä¸è½½Python
建议å®è£ 2.7.çæ¬ï¼3.x以ä¸çæ¬ä¸æ¯æã
æå®è£ çè·¯å¾æ¯ï¼C:\Python
2ï¼å¨ç¨æ·åéä¸æ·»å ï¼PYTHON_HOMEï¼å¼ï¼C:\Pythonå¦ä¸ï¼
3ï¼å¨ç³»ç»åéPathä¸æ·»å 两个åéå¼ï¼%PYTHON_HOME%ã%PYTHON_HOME%\Scriptsï¼å ¶ä»ç³»ç»ççé¢ä¼ä¸ä¸æ ·ï¼æ·»å çå¼é½ä¸æ ·ï¼
2.å®è£ git
1ï¼ä¸è½½
2ï¼ä¸è½½å®ç´æ¥å®è£ å°±å¯ä»¥äºã注æå°éæ©ç»ä»¶è¿ä¸æ¥éª¤æ¶ï¼è¦éæ©ä¸âUseaTrueTypefontinallconsolewindowsâ.
ä¸ä¸æ¥ï¼éæ©WindowsCommandPrompt
ä¸ä¸æ¥ï¼éæ©CheckoutWindows-style,commitUnix-stylelineendings
ä¸ä¸æ¥ï¼éæ©UseWindowsâdefaultconsolewindow
ä¸ä¸æ¥ï¼å ¨é
å®æå®è£
3.é ç½®androidç¯å¢
1ï¼ä¸è½½AndroidStudio
æ¤è½¯ä»¶æ¯æ´ä¸ªandroidç¼ç¨æéè¦ç
2ï¼è®¾ç½®ç¯å¢åéANDROID_HOME
å¨ç¯å¢åéä¸é ç½®ANDROID_HOMEï¼æå®sdkè·¯å¾ï¼æ¬äººé ç½®å¦ä¸ï¼
3ï¼é ç½®ç¯å¢åépath
å¨ç¯å¢åépathä¸æ·»å 2个åéï¼%ANDROID_HOME%\toolsã%ANDROID_HOME%\platform-tools
4.å®è£ nodejs
1ï¼å°å®ç½ä¸é¢ä¸è½½å¯¹åºçå®è£ æ件
é»è®¤å®è£ å¨C:\ProgramFiles\nodejsæ件夹ä¸ã
2ï¼å»ºè®®è®¾ç½®npméå以å éåé¢çè¿ç¨
å®è£ æååï¼æ们å¨å½ä»¤è¡åå«è¾å ¥ï¼
npmconfigsetregistryâglobal
npmconfigsetdisturlâglobal
3ï¼é ç½®pythonçæ¬
å¨å½ä»¤è¡è¾å ¥npmconfigsetpythonpython2.7
4.å®è£ ReactNative
1ï¼å®è£ ReactNativeæ2ç§æ¹æ³ï¼ç¬¬ä¸ç§ç´æ¥ä¸githubä¸è½½è§£åï¼ç¬¬äºç§ç¨gitå½ä»¤è¡ä¸è½½ã
æ¬äººç¨çæ¯gitå½ä»¤æ¹æ³ï¼ç¬¬äºç§ã
â å¨githubä¸ä¸è½½è§£åï¼
å¨githubä¸ä¸è½½ãç¶å解åï¼æ们解åå¨E:\ProgramFiles(èªè¡éæ©è·¯å¾)ã
â¡ç¨gitå½ä»¤è¡ä¸è½½
ç¨å½ä»¤è¡è¿å ¥å°E:\ProgramFilesç®å½ï¼æ¤ç®å½æ´å ç¨æ·ç±å¥½éæ©ãè¾å ¥æ¤ç®å½åï¼ä¼èªå¨ä¸è½½å°å½åç®å½ä¸ã
ç¶åè¾å ¥å½ä»¤gitclone
éè¿ä¸è¿°ä¸¤ç§æ¹æ³ï¼æç»çå°æ们ä¸è½½ä¸æ¥çreactnative
2ï¼å®è£ react-nativeå½ä»¤è¡å·¥å ·
å¨å½ä»¤è¡è¾å ¥ï¼
npminstall-greact-native-cli
3.å建HelloWord项ç®
1ï¼å建èªå·±ç项ç®è·¯å¾ï¼æ们å建å¨F:\ProjectWorkspace\ReactNative
2ï¼CMDå½ä»¤è¡å°ä¸é¢è·¯å¾ä¸ï¼ç¶åè¾å ¥å½ä»¤react-nativeinitHelloWorldæ¥å建项ç®ãè¿éHelloWorld为项ç®åï¼è¯»è å¯æ ¹æ®èªå·±å好æ¥å®ä¹ã
å®è£ è¿ç¨è¦çå¾ ä¸æ®µæ¶é´ï¼è¿ä¸ªè¿ç¨ä¼ä¸è½½ä¸äºå ã
3ï¼å¦æ第2æ¥çå¾ å®æä¹åï¼æ²¡æåºç°é误ï¼å¯ä»¥çç¥è¿ä¸æ¥ã
å¨çå¾ äºå¾é¿çæ¶é´åï¼å¤§æ¦å个å°æ¶ï¼ï¼åºç°äºé误ï¼ä¸å¤§æ¨é误ï¼å¦ä¸
F:\ProjectWorkspace\ReactNativereact-nativeinitHelloWorld
ThiswillwalkyouthroughcreatinganewReactNativeprojectinF:\ProjectWorkspace\ReactNative\HelloWorld
Installingreact-nativepackagefromnpm...
SettingupnewReactNativeappinF:\ProjectWorkspace\ReactNative\HelloWorld
bufferutil@1.2.1installF:\ProjectWorkspace\ReactNative\HelloWorld\node_modules\bufferutil
node-gyprebuild
F:\ProjectWorkspace\ReactNative\HelloWorld\node_modules\bufferutilifnotdefinednpm_config_node_gyp(node"C:\ProgramFiles\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js"rebuild)else(node""rebuild)
å¨æ¤è§£å³æ¹æ¡ä¸ä¸æ¬¡çæä¸ä¸ªé¡¹ç®ãè¥è¦å¯ç¨å¹¶è¡çæï¼è¯·æ·»å â/mâå¼å ³ã
C:\ProgramFiles(x)\MSBuild\Microsoft.Cpp\v4.0\V\Microsoft.CppBuild.targets(,5):warningMSB:Couldnotfi
ndWindowsSDKDirvariablefromtheregistry.TargetFrameworkVersionorPlatformToolsetmaybesettoaninvalidversio
nnumber.[F:\ProjectWorkspace\ReactNative\HelloWorld\node_modules\bufferutil\build\bufferutil.vcxproj]
TRACKER:é误TRK:æªè½æ¾å°:âCL.exeâãç³»ç»æ¾ä¸å°æå®çæ件ã
C:\ProgramFiles(x)\MSBuild\Microsoft.Cpp\v4.0\V\Microsoft.CppCommon.targets(,5):errorMSB:âCL.exeâå·²éåºï¼ä»£
ç 为5ã[F:\ProjectWorkspace\ReactNative\HelloWorld\node_modules\bufferutil\build\bufferutil.vcxproj]
gypERR!builderror
gypERR!stackError:`C:\ProgramFiles(x)\MSBuild\.0\bin\msbuild.exe`failedwithexitcode:1
gypERR!stackatChildProcess.onExit(C:\ProgramFiles\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js::)
gypERR!stackatemitTwo(events.js::)
gypERR!stackatChildProcess.emit(events.js::7)
gypERR!stackatProcess.ChildProcess._handle.onexit(internal/child_process.js::)
gypERR!SystemWindows_NT.0.
gypERR!command"C:\\ProgramFiles\\nodejs\\node.exe""C:\\ProgramFiles\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js""rebuild"
gypERR!cwdF:\ProjectWorkspace\ReactNative\HelloWorld\node_modules\bufferutil
gypERR!node-vv6.2.0
gypERR!node-gyp-vv3.3.1
gypERR!notok
npmWARNinstall:bufferutil@1.2.1bufferutil@1.2.1install:`node-gyprebuild`
npmWARNinstall:bufferutil@1.2.1Exitstatus1
utf-8-validate@1.2.1installF:\ProjectWorkspace\ReactNative\HelloWorld\node_modules\utf-8-validate
node-gyprebuild
F:\ProjectWorkspace\ReactNative\HelloWorld\node_modules\utf-8-validateifnotdefinednpm_config_node_gyp(node"C:\ProgramFiles\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js"rebuild)else(node""rebuild)
å¨æ¤è§£å³æ¹æ¡ä¸ä¸æ¬¡çæä¸ä¸ªé¡¹ç®ãè¥è¦å¯ç¨å¹¶è¡çæï¼è¯·æ·»å â/mâå¼å ³ã
C:\ProgramFiles(x)\MSBuild\Microsoft.Cpp\v4.0\V\Microsoft.CppBuild.targets(,5):warningMSB:Couldnotfi
ndWindowsSDKDirvariablefromtheregistry.TargetFrameworkVersionorPlatformToolsetmaybesettoaninvalidversio
nnumber.[F:\ProjectWorkspace\ReactNative\HelloWorld\node_modules\utf-8-validate\build\validation.vcxproj]
TRACKER:é误TRK:æªè½æ¾å°:âCL.exeâãç³»ç»æ¾ä¸å°æå®çæ件ã
C:\ProgramFiles(x)\MSBuild\Microsoft.Cpp\v4.0\V\Microsoft.CppCommon.targets(,5):errorMSB:âCL.exeâå·²éåºï¼ä»£
ç 为5ã[F:\ProjectWorkspace\ReactNative\HelloWorld\node_modules\utf-8-validate\build\validation.vcxproj]
gypERR!builderror
gypERR!stackError:`C:\ProgramFiles(x)\MSBuild\.0\bin\msbuild.exe`failedwithexitcode:1
gypERR!stackatChildProcess.onExit(C:\ProgramFiles\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js::)
gypERR!stackatemitTwo(events.js::)
gypERR!stackatChildProcess.emit(events.js::7)
gypERR!stackatProcess.ChildProcess._handle.onexit(internal/child_process.js::)
gypERR!SystemWindows_NT.0.
gypERR!command"C:\\ProgramFiles\\nodejs\\node.exe""C:\\ProgramFiles\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js""rebuild"
gypERR!cwdF:\ProjectWorkspace\ReactNative\HelloWorld\node_modules\utf-8-validate
gypERR!node-vv6.2.0
gypERR!node-gyp-vv3.3.1
gypERR!notok
npmWARNinstall:utf-8-validate@1.2.1utf-8-validate@1.2.1install:`node-gyprebuild`
npmWARNinstall:utf-8-validate@1.2.1Exitstatus1
HelloWorld@0.0.1F:\ProjectWorkspace\ReactNative\HelloWorld
`--react@.1.0
npmWARNoptionalSkippingfailedoptionaldependency/chokidar/fsevents:
npmWARNnotsupNotcompatiblewithyouroperatingsystemorarchitecture:fsevents@1.0.
TorunyourapponiOS:
cdF:\ProjectWorkspace\ReactNative\HelloWorld
react-nativerun-ios
-or-
OpenF:\ProjectWorkspace\ReactNative\HelloWorld\ios\HelloWorld.xcodeprojinXcode
HittheRunbutton
TorunyourapponAndroid:
HaveanAndroidemulatorrunning(quickestwaytogetstarted),oradeviceconnected
cdF:\ProjectWorkspace\ReactNative\HelloWorld
react-nativerun-android
è¿å é误主è¦æ¯è¯´æ²¡æå®è£ C++çå½ä»¤è¡ç¯å¢ãèæ¬äººç»è¿äº2天çæ¶é´æ解å³çè¿ä¸ªé®é¢ï¼è½ç¶è¿ä¸ªé®é¢çèµ·æ¥æ¯è¾ç®åã
解å³æ¹æ³å¦ä¸ï¼
é¦å è¦å®è£ VSã
注æçæ¯å¨å®è£ VSçè¿ç¨ä¸éè¦éä¸CommonToolsforVisualC++çé项ï¼å 为é»è®¤æ¯ä¸éæ©çãè¿é说æé»è®¤ä¸å®è£
å¦æä½ å·²ç»å®è£ äºVSï¼é£ä¹ä½ é¦å æå¼VSï¼ç¶åæ°å»ºä¸ä¸ªC++项ç®ï¼éæ©å®è£ ã
å®è£ æ¶ï¼ä¼æ示éæ©å®è£ C++ï¼
æåå§npmçvsçæ¬è®¾ç½®æãæå¼å½ä»¤è¡ï¼è¾å ¥npmconfigsetmsvs_version
è¿æ ·ï¼å次è¿è¡react-nativeinitHelloWorldä¸ä¼æ¥éäºã
è¿è¡ä¹åï¼ä¸ºäºç¡®ä¿å°æ¦çåºéï¼è¯·å é¤åæ¥çHelloWorldæ件夹ã
注æä¸ç¹çæ¯ï¼å¦æçå°å½ä»¤ä¸æåçå¨Installingreact-nativepackagefromnpmâ¦ï¼è¯·æå车é®ï¼ä¼èªå¨è¿è¡ãæ¤å¤å¯è½ä¸ºä¸ä¸ªbugã
è®°å½Reactæ§è½ä¼åä¹âèææ»å¨âææ¯ââreact-windowå¦æä½ çåºç¨æ¸²æäºé¿å表ï¼ä¸ç¾çè³ä¸åçæ°æ®ï¼æ¶ï¼Reactå®ç½æ¨èæ们使ç¨âèææ»å¨âææ¯ãè¿é¡¹ææ¯ä¼å¨æéçæ¶é´å ä» æ¸²ææéçå 容ï¼å¹¶å¥è¿¹è¬å°éä½éæ°æ¸²æç»ä»¶æ¶èçæ¶é´ï¼ä»¥åå建DOMèç¹çæ°éã
Reactå®ç½æ¨èæ们使ç¨react-windowåreact-virtualizedè¿2个çé¨çèææ»å¨åºãå®ä»¬æä¾äºå¤ç§å¯å¤ç¨çç»ä»¶ï¼ç¨äºå±ç¤ºå表ãç½æ ¼åè¡¨æ ¼æ°æ®ã
è¿2个åºï¼åºèªäºåä¸ä¸ªä½è ãreact-virtualizedæ¯ä½è 对Reactåçªå£æ¦å¿µé½ä¸çææ¶åçï¼å äºä¸äºAPIåæ·»å äºå¤ªå¤éå¿ è¦çåè½åç»ä»¶ï¼åæ¥ä½è åæäºï¼ä½å 为ä¸æ¦åå¼æºé¡¹ç®æ·»å äºä¸äºä¸è¥¿ï¼å é¤å®å¯¹ç¨æ·æ¥è¯´æ¯é常çè¦çãæ以ä½è å®æ´éåäºreact-virtualizedï¼å¹¶ä¸æ´ä¸æ³¨äºä½¿å è£ æ´å°åæ´å¿«ãæ以react-windowæ¯react-virtualizedçè½»é级æ¿ä»£åã
æ使ç¨çæ¯VariableSizeGridï¼å¯å尺寸ç½æ ¼ï¼ã
é®é¢1ï¼ä½¿ç¨itemDataè¿è¡ç½æ ¼ä¸æ°æ®çä¼ éæ¶ï¼å½columnCountï¼ç½æ ¼ä¸çåæ°ï¼*rowCountï¼ç½æ ¼ä¸çè¡æ°ï¼itemData.lengthï¼ä¼åºç°ç½æ ¼æ»å¨å°æåä¸è¡æ¶ï¼æåä¸è¡æ²¡æ被渲æã
æ¹æ¡1ï¼ç»itemDataæ°ç»pushï¼columnCount*rowCount-itemData.lengthï¼ä¸ªå¯¹è±¡ï½true:trueï½ï¼ç¶åå¨ç»ä»¶renderæ¶ï¼è¿è¡å¤æreturnï¼div/divï¼
é®é¢2ï¼ç½æ ¼å¯ä»¥ï¼ å¡«å 页é¢ç宽度æé«åº¦åï¼ï¼è¿ä¸ªé®é¢ä½è æå¨npmä¸åçè¿ï¼
æ¹æ¡2ï¼ç½æ ¼å®½é«å¿ é¡»ä¼ å ¥numberç±»åï¼æ以ä¸è½ç´æ¥åâ%âï¼éè¦ä½¿ç¨react-virtualized-auto-sizerå ã
é®é¢3ï¼è¿ä¸ªæ¯è¾éè¦ï¼æ²¡ææä¾å¯ä»¥ä¼ éæ¹æ³çAPIãæä¾äºå¯ä»¥å¨å¤å±éå èªå®ä¹å±æ§æäºä»¶å¤çç¨åºçAPIï¼outerElementTypeãä½ä¸è½æ»¡è¶³ææ³è¦ç¹å»æé®æ¶æ触åäºä»¶çéæ±ã
æ¹æ¡3ï¼JavaScript设计模å¼ä¹è§å¯è 模å¼
å¼æºçWindowsç³»ç»ââReactOSReactOSæ¯ä¸ä¸ªå¼åä¸WindowsNTåWindowsåºç¨ç¨åºå硬件驱å¨ç¨åºå ¼å®¹çå¼æºæä½ç³»ç»ç项ç®ãæ¤é¡¹ç®å½åè½ç¶åªæ¯å¤äºå é¨æµè¯ï¼alphaï¼å¼åç¶æï¼ä½å°å¹´1æå ¶ä¸ä¸äºå项ç®å·²ç»å®æäºç®æ ã
ReactOS主è¦æ¯ç±Cè¯è¨ç¼åãé¨åç»ä»¶åç±C++ç¼åï¼ä¾å¦ReactOSæ件æµè§å¨ã
ReactOSç许å¯å议主è¦ä¸ºGNUéç¨å ¬å ±è®¸å¯è¯ï¼ä¹æå°é代ç 以GNU宽éç¨å ¬å ±è®¸å¯è¯ãBSD许å¯è¯ä¹ç±»çå¼æºè®¸å¯è¯åè¡ã
为确ä¿æä½ç³»ç»æ²¡æä»»ä½ä¸é¨åæ¯çè¿æ³æ¼åºæ¥ç微软Windowsæºç ç人æåï¼æè éåå·¥ç¨çè¿ç¨è¾¾ä¸å°å室设计æ åï¼ä¸ä¸ªå ¨ççæºç 审æ¥ç±ReactOS主è¦å¼åè ä¸ä»¤å±å¼ãæ¤å®¡æ¥å½åå·²ç»ç»æã
åå±åç¨
å¯å¨å¼å
大约å¨å¹´æ¶ï¼ä¸ç¾¤å¼æºè½¯ä»¶å¼åè å¯å¨äºä¸ä¸ªå为FreeWinç项ç®ï¼æ¨å¨å®ç°ä¸ä¸ªWindowsçå éæä½ç³»ç»ãè¿ä¸ªé¡¹ç®å½æ¶åªåçå¨å ³äºç³»ç»å®ç°ç讨论ä¸ã
è½ç¶å¯¹äºFreeWin项ç®æå¾ å¾é«ï¼ä½ç´å°å¹´æ«ï¼é¡¹ç®è¿æ²¡æå ¬å¼åå¸ä»»ä½çæ¬ï¼äºæ¯é¡¹ç®åè°åJasonFilbyèå大家éæ¯è¯¥é¡¹ç®å¹¶èµ·äºä¸ä¸ªæ°å称âReactOSâï¼å¹¶è®¡åéæ°å®ç°WindowsNTãå¹´2æReactOS项ç®æ£å¼å¯å¨ï¼å¼å§å¼åç³»ç»å æ ¸ååºæ¬ç驱å¨ç¨åºã
代ç 审æ¥
为äºé¿å çæèµ·è¯ï¼ReactOSå¿ é¡»æç¡®å°å®å ¨åºå并ä¸ä¸æ´¾çäºWindowsï¼è¿æ¯ä¸ä¸ªéè¦é常谨æ å·¥ä½çç®æ ãå¹´1ææ¥ï¼HartmutBirrå¨ReactOSå¼åè é®ä»¶å表ä¸æåºReactOSå å«æåç¼è¯çWindowsæºç ãå æ¤å¼åè ææ¶ç¦æ¢éå¼åè è¿å ¥ç³»ç»ãé´äºReactOSæ¯å¼æ¾æºç 软件ï¼æ¤ä¸¾å¼èµ·å¼æ¾æºç 社群çä¸æ»¡ãReactOSçè´¡ç®è 没åå½æ¶ç举å¨å½±åãä¸ä¹ åææ软件å¼åå·¥ç¨é½è½èªç±è¿å ¥äºãç±äºBirrçæææªè½è¯å®ï¼å¼åè å³å®å®¡æ¥æºç ãå¯è½âå污æâçæºç ä¼è¢«å°éï¼ç´å°é£äºæºç ç»å®¡æ¥åç¡®å®æ é®é¢ã
大é¨åçæºç 已解å°ï¼ç»´æ¤åå¼åé½å¯ç»§ç»è¿è¡ï¼è审æ¥äº¦åæ¶è¿è¡ã
å¹´ï¼æºç å·²ç»å ¨é¨è§£å°ã审æ¥ä¹å·²ç»å ¨é¨ç»æãç»´æ¤åå¼åå¾ä»¥æ£å¸¸ç»§ç»ã
åä¸GoogleSummerofCode
ä»å¹´å¼å§ï¼ReactOS项ç®åä¸äºå 次GoogleSummersofCodeãä¾å¦ï¼å¨GSoCä¸ï¼ReactOSæ导äºä¸ä¸ªå°lwIPéæå°ç½ç»å æ ä¸çå¦ç项ç®ãè¿ä»ä¸ºæ¢ï¼ReactOSæ¾å¨GSoCåä¸è¿äºæ¬¡ï¼å¹´ï¼å¹´ï¼å¹´ï¼å¹´åå¹´ãå¹´ä¹å°åä¸ã
å ¬å¼æ¼ç¤º
ä¿ç½æ¯çæ¿æ²»äººç©ViktorAlksnisä¼è§äºé¡¹ç®åè°åAlekseyBraginï¼AlekseyBraginä»ç»äºè¯¥é¡¹ç®å¹¶æ¼ç¤ºäºè¯¥é¡¹ç®ï¼æ¼ç¤ºä¸æ¾ç¤ºReactOSå¨å¹´å·²ç»å¯ä»¥è¿è¡å½æ¶çTotalCommanderåMozillaFirefoxãå®è¿å¸å¼äºæ¶ä»»ä¿ç½æ¯æ»ç»æ¢ å¾·é¦æ°å¤«ï¼DmitryMedvedevï¼çå ³æ³¨ãæ¢ å¾·é¦æ°å¤«è®¿é®
å¦ä½ç¼è¯java
ç¨å½ä»¤æ示符ç¼è¯javaç¨åºçæ¥éª¤ï¼1.å æ°å»ºææ¬ææ¡£ï¼è¾å ¥èªå·±çjavaç¨åºã
è¿éæåä¸ä¸ªç®åçjavaç¨åºï¼æ¥å示èã
import java.util.*;
public class HelloDate{
public static void main(String[] args)
{
System.out.println("Hello,it's:");
System.out.println(new Date());
}
}
2.ç¶åå¦å为ä¸ä¸ªjavaæ件ã
1.éæ©æ件--->å¦å为--->å称为âHelloDate.javaâ----->éæ©âæææ件âã
2.è®°ä½èªå·±è¿ä¸ªæ件çåå¨ä½ç½®ãï¼æ¹ä¾¿è°ç¨ï¼ï¼
3.æå¼ç¨åº---->é件--->å½ä»¤æ示符ã
4.ç±äºæçé£ä¸ªjavaææ¬ä¿åå¨äºF:/java/ï¼å¨Fçä¸çjavaæ件夹éï¼ä¸ï¼æ以å¦æè¦æ³ç¼è¯ï¼å°±éè¦å éè¿å½ä»¤æ示符è¿å ¥javaè¿ä¸ªæ件夹ï¼å ·ä½æ¥éª¤å¦ä¸ï¼
1.è¿å ¥Fçï¼è¾å ¥ãF:ãï¼ç¶åæä¸å车é®ãEnterã
2.è¾å ¥ãcd javaãï¼æä¸å车é®ãEnterã
è¿æ ·å°±å·²ç»è¿å ¥äºãè¿éçcdçææå°±æ¯è¿å ¥çææã
5.ç´§æ¥çè°ç¨javaç¼è¯å¨è¿è¡ç¼è¯ã
è¾å ¥ãjavac HelloDateãjavaãï¼ç¶åæä¸å车é®ãEnterã
ç¶åè¿è¡ç»æã
è¾å ¥ãjava HelloDateãï¼æä¸å车é®ãEnterã
ç»éªæ»ç»ï¼è¿è¡ä¸ä¸ªjavaç¨åºç大æ¦çæµç¨æ¯ï¼
书åæºä»£ç ------>ç¼è¯------->è¿è¡---->ç»æã
注æäºé¡¹ï¼
1.å¨è¾å ¥çæ¶åä¸å®è¦æ³¨æåºå大å°åã
2.æä½ä¹åè¦ä¿è¯èªå·±ççµèé ç½®äºjavaçè¿è¡ç¯å¢ã
å¦ä½å¨OpenWRTç¯å¢ä¸åå¼å
ãã1ãæ建å¼åç¯å¢é¦å ï¼å¨æ§è¡make menuconfigåï¼ä¼åºç°ä¸å¾ï¼
ããå ¶ä¸ï¼å¾ä¸çº¢æ¡é¨åæ¯æå®å¶è·¯ç±å¨çç³»ç»çæ¬ï¼å¤§å®¶å¯ä»¥æ ¹æ®ä¸åçè·¯ç±å¨è¿è¡ä¸åçéæ©ï¼ç»¿æ¡é¨å表示æ们éè¦ç¼è¯ä¸ä¸ªSDKå¼åç¯å¢ï¼é»è®¤æ åµä¸ï¼æ¤é¡¹æªå¾éï¼ã
ããç¼è¯è¿ç¨ä¸éè¦éè¿å®ç½ä¸è½½å¾å¤ç¸å ³ç软件å ï¼æä»¥å¿ é¡»ä¿è¯è½å¤é¡ºå©è¿ä¸å¤ç½ãç±äºä¸è½½é度çéå¶ï¼ç¼è¯è¿ç¨å¤§æ¦éè¦æ°å°æ¶ãç¼è¯ç»æåï¼ææç产åé½ä¼æ¾å¨ç¼è¯æ ¹ç®å½ä¸çbin/yourtarget/. ä¾å¦:ææç¼è¯ç产ç©é½æ¾å¨./bin/brcmxx/ä¸ï¼å ¶ä¸æ件主è¦æå ç±»ï¼
ããï¼1ï¼.bin/.trx æ件: è¿äºé½æ¯å¨æ们æéçtarget-systemçç±»å«ä¹ä¸ï¼é对ä¸åè·¯ç±å¨åå·ãçæ¬ç¼è¯çè·¯ç±å¨åºä»¶ãè¿äºä¸åè·¯ç±å¨çåå·åçæ¬æ¯openwrté¢å 设置好çï¼æ们ä¸éè¦æ´æ¹ãè³äº.binå.trxçåºå«ï¼ä¸ç§è¯´æ³æ¯ï¼ç¬¬ä¸æ¬¡å·è·¯ç±å¨çæ¶åï¼éè¦ç¨.binæ件ï¼å¦æéè¦åå级ï¼åä¸è½å使ç¨.binæ件ï¼èéè¦ç¨.trxæ件ãåå æ¯ï¼.binæ¯å°è·¯ç±å¨çç¸å ³é 置信æ¯å.trxå°è£ å¨ä¸èµ·èçæçå°å ï¼ä¹å°±æ¯è¯´æ¯å å«è·¯ç±å¨çæ¬ä¿¡æ¯ç.trxãå¨ç¬¬ä¸æ¬¡å·åºä»¶çæ¶åï¼æ们éè¦æä¾è¿æ ·çä¿¡æ¯ï¼èå¨åç»å级æ¶ï¼åä¸åéè¦ï¼ç¨.trxæ件å³å¯ã
ããï¼2ï¼packagesæ件夹: éé¢å å«äºæ们å¨é ç½®æ件é设å®çææç¼è¯å¥½ç软件å ãé»è®¤æ åµä¸ï¼ä¼æé»è®¤éæ©ç软件å ã
ããï¼3ï¼OpenWrt-SDK.**.tar.bz2: è¿ä¸ªä¹å°±æ¯æ们å®å¶ç¼è¯å¥½çOpenWRT SDKç¯å¢ãæ们å°ç¨è¿ä¸ªæ¥è¿è¡OpenWrt软件å çå¼åãä¾å¦ï¼ææç¼è¯å¥½çSDKç¯å¢å 为ï¼/bin/brcmxx/OpenWrt-SDK-brcmxx-for-Linux-x_-gcc-4.3.3+cs_uClibc-0.9..1.tar.bz2
å¯ä»¥ä»å称ä¸çåºï¼target systemæ¯brcmxxï¼host systemæ¯Linux-x_ï¼ä½¿ç¨çç¼è¯å·¥å ·ä»¥ååºæ¯4.3.3+cs_uClibc-0.9..1ã
ããï¼4ï¼md5sums æ件: è¿ä¸ªæ件记å½äºæææ们ç¼è¯å¥½çæ件çMD5å¼ï¼æ¥ä¿è¯æ件çå®æ´æ§ãå 为æ件çä¸å®æ´ï¼å¾å®¹æå°è·¯ç±å¨åæâç 头âã
ããéè¦ä¸»è¦çæ¯ï¼ç¼è¯å®æåï¼ä¸å®è¦å°ç¼è¯å¥½çbinç®å½è¿è¡å¤ä»½ï¼å¦æéé¢ä¸è¥¿å¯¹ä½ å¾éè¦çè¯ï¼ï¼å 为å¨ä¸æ¬¡ç¼è¯ä¹åï¼æ§è¡make clean ä¼å°binç®å½ä¸çæææ件ç»æ¸ é¤æ!!
ãã2ã æ´æ¹åæpackages
ããå¨ç¼è¯æ ¹ç®å½ä¸ä¼æä¸ä¸ªdlçç®å½ï¼è¿ä¸ªç®å½å ¶å®æ¯âdownloadâçç®åï¼å¨ç¼è¯åæï¼éè¦ä»ç½ç»ä¸è½½çæ°æ®å é½ä¼æ¾å¨è¿ä¸ªç®å½ä¸ï¼è¿äºè½¯ä»¶å çä¸ä¸ªç¹ç¹å°±æ¯ï¼ä¼èªå¨å®è£ å¨æç¼è¯çåºä»¶ä¸ï¼ä¹å°±æ¯æ们make menuconfigçæ¶åï¼ä¸ºåºä»¶é ç½®çä¸äºè½¯ä»¶å ãå¦ææ们éè¦æ´æ¹è¿äºæºç å ï¼åªéè¦å°æ´æ¹å¥½çæºç å æå æç¸åçååæ¾å¨è¿ä¸ªç®å½ä¸ï¼ç¶åå¼å§ç¼è¯å³å¯ãç¼è¯æ¶ï¼ä¼å°è½¯ä»¶å 解åå°build_dirç®å½ä¸ã
å½ç¶ï¼ä½ ä¹å¯ä»¥èªå·±å¨dléé¢å建èªå·±ç软件å ï¼ç¶åæ´æ¹ç¸å ³çé ç½®æ件ï¼è®©openwrtå¯ä»¥è¯å«è¿ä¸ªæ件å ã
ããç±äºæç项ç®æ´æ¹çå 容æ¯åºå±çï¼éè¦è·åºä»¶ä¸èµ·å®è£ ãæ以ï¼æ使ç¨çæ¹æ³å°±æ¯ç´æ¥æ´æ¹dlç®å½ä¸è½¯ä»¶å ï¼ç¶åéæ°è¿è¡åºä»¶ç¼è¯ãæè§ç±»ä¼¼äºLinuxçå æ ¸ç¼è¯ãåå¤ç¼è¿åå¤æ¬¡ï¼æ²¡æä»»ä½é®é¢ã
ãã3ã æ°å»ºèªå·±çpackages
对äºèªå·±æ°å»ºçpackageï¼èè¿ä¸ªpackageåä¸éè¦éåºä»¶ä¸èµ·å®è£ ï¼æ¢å¥è¯è¯´ï¼å°±æ¯å¯ä»¥å½åä¸ä¸ªå¯é软件å çè¯ãæ们å¯ä»¥å©ç¨æ们çSDKç¯å¢æ¥åç¬ç¼è¯ï¼ç¼è¯åä¼çæä¸ä¸ªipkçæ件å ãç¶åå©ç¨ opkg install xxx.ipk æ¥å®è£ è¿ä¸ªè½¯ä»¶ã
ããä¸é¢å ·ä½è¯´ä¸ï¼å¦ä½ç¼è¯ä¸ä¸ªhellowordç软件å ã
ï¼1ï¼é¦å ï¼ç¼åhelloworldç¨åº
ç¼åhelloworld.c
/