ç¹èµå ³æ³¨ï¼ä¸åè¿·è·¯ï¼ä½ çæ¯æå¯¹ææä¹é大ï¼
ð¥ Hiï¼ææ¯ä¸ä¸ãæ¬æ GitHub · Android-NoteBook å·²æ¶å½ï¼è¿éæ Android è¿é¶æé¿è·¯çº¿ç¬è®° & åå®¢ï¼æ¬¢è¿è·çå½ä¸ä¸ä¸èµ·æé¿ãï¼èç³»æ¹å¼å¨ GitHubï¼
åè¨
- å¨åæ Android æºç çè¿ç¨ä¸ï¼å¾å¾ä¼ç»å app -> framework -> native -> kernel çè¿ç¨ï¼æç»å°±æ¥å°äºç¨æ·ç¨åºä¸å æ ¸å±åºçè¾¹çï¼å³ï¼ç³»ç»è°ç¨ï¼System Callï¼ï¼
- æ¸ æ°å°ç解系ç»è°ç¨çç¸å ³æ¦å¿µï¼å¯¹äºåç»æ·±å»çè§£å ¶ä»éç¹ç¥è¯å¤§æè£¨çãå¨è¿ç¯æç« éï¼æå°ç®ååæ ä¸æ &ç³»ç»è°ç¨ çç¸å ³æ¦å¿µï¼å¦æè½å¸®ä¸å¿ï¼è¯·å¡å¿ ç¹èµå å ³æ³¨ï¼è¿çç对æé常éè¦ã
1. 䏿æºå¶
1.1 ä»ä¹æ¯ä¸æï¼
- å®ä¹
䏿ï¼interruptï¼æ¯è®¡ç®æºç³»ç»ä¸çåºæ¬æºå¶ä¹ä¸ãå³ï¼å¨è®¡ç®æºè¿è¡è¿ç¨ä¸ï¼å½åçæä¸ªäºä»¶åï¼CPU ä¼åæ¢å½åç¨åºæµï¼è½¬èå»å¤ç该äºä»¶ï¼å¹¶å¨å¤ç宿¯åç»§ç»æ§è¡åç¨åºæµã
| ç¸å ³æ¦å¿µ | æè¿° |
|---|---|
| 䏿åç±» | ç¡¬ä¸æï¼Hardware Interruptï¼& è½¯ä¸æï¼Software Interruptï¼ |
| 䏿åé表ï¼Interrupt Vector Tableï¼ | è®°å½äºä¸æå·ä¸ä¸ææå¡ç¨åºå åå°åçæ å°å ³ç³» |
| 䏿æå¡ç¨åº / 䏿å¤çç¨åºï¼Interrupt Serviceï¼ | éè¿ä¸æåé表å®ä½å°çç¹å®å¤çç¨åº |
1.2 为ä»ä¹å¼å ¥ä¸æï¼
䏿æºå¶ç好夿¯ å主å¨ä¸ºè¢«å¨ï¼é¿å CPU 轮询çå¾ ææ¡ä»¶æç«ãå¦ææ²¡æä¸ææºå¶ï¼é£ä¹âæä¸ªæ¡ä»¶æç«âå°±éè¦ CPU è½®è¯¢å¤æï¼è¿æ ·å°±ä¼å¢å ç³»ç»çå¼éãè使ç¨ä¸ææºå¶ï¼å°±å¯ä»¥å¨æ¡ä»¶æç«ä¹åï¼å CPU åé䏿äºä»¶ï¼å¼ºå¶ä¸æ CPU æ§è¡ç¨åºï¼è½¬è廿§è¡ä¸æå¤çç¨åºã
1.3 ç¡¬ä¸æ
ç¡¬ä¸æç±å¤é¨è®¾å¤ï¼ä¾å¦ï¼ç£çï¼ç½å¡ï¼é®çï¼æ¶éï¼äº§çï¼ç¨æ¥éç¥æä½ç³»ç»å¤è®¾ç¶æååã
æ¶éä¸æï¼ ä¸ç§ç¡¬ä¸æï¼ç¨äºå®æææ CPU æ§è¡ç线ç¨ï¼ä»¥ä¾¿åæ¢ç»å ¶ä»çº¿ç¨ä»¥å¾å°æ§è¡æºä¼ã
ç¡¬ä¸æçå¤çæµç¨å¦ä¸ï¼
- 1ãå¤è®¾ å°ä¸æè¯·æ±åéç»ä¸ææ§å¶å¨ï¼
- 2ã䏿æ§å¶å¨ æ ¹æ®ä¸æä¼å çº§ï¼æåºå°å°ä¸æä¼ éç» CPUï¼
- 3ãCPU ç»æ¢æ§è¡å½åç¨åºæµï¼å° CPU ææå¯åå¨çæ°å¼ä¿åå°æ ä¸ï¼
- 4ãCPU æ ¹æ®ä¸æåéï¼ä»ä¸æåéè¡¨ä¸æ¥æ¾ä¸æå¤çç¨åºçå ¥å£å°åï¼æ§è¡ä¸æå¤çç¨åºï¼
- 5ãCPU æ¢å¤å¯åå¨ä¸çæ°å¼ï¼è¿ååç¨åºæµåæ¢ä½ç½®ç»§ç»æ§è¡ã
1.4 è½¯ä¸æ
è½¯ä¸ææ¯ä¸æ¡ CPU æä»¤ï¼ç±å½åæ£å¨è¿è¡çè¿ç¨äº§çã
è½¯ä¸ææ¨¡æäºç¡¬ä¸æçå¤çè¿ç¨ï¼
- 1ãæ
- 2ãæ
- 3ãCPU ç»æ¢æ§è¡å½åç¨åºæµï¼å° CPU ææå¯åå¨çæ°å¼ä¿åå°æ ä¸ï¼
- 4ãCPU æ ¹æ®ä¸æåéï¼ä»ä¸æåéè¡¨ä¸æ¥æ¾ä¸æå¤çç¨åºçå ¥å£å°åï¼æ§è¡ä¸æå¤çç¨åºï¼
- 5ãCPU æ¢å¤å¯åå¨ä¸çæ°å¼ï¼è¿ååç¨åºæµåæ¢ä½ç½®ç»§ç»æ§è¡ã
ç³»ç»è°ç¨ï¼ æ¯ä¸ç§è½¯ä¸æå¤çç¨åºï¼ç¨äºè®©ç¨åºä»ç¨æ·æé·å ¥å æ ¸æï¼ä»¥æ§è¡ç¸åºçæä½ã
2. ç³»ç»è°ç¨
2.1 æä½ç³»ç»ä¸åºç¨çè¾¹ç
- å æ ¸ç©ºé´
æä½ç³»ç»ï¼Operating Systemï¼æ¯ç®¡çè®¡ç®æºç¡¬ä»¶ä¸è½¯ä»¶èµæºçç¨åºï¼æä½ç³»ç»å æ ¸é©»çå¨åä¿æ¤çå æ ¸ç©ºé´ã
- ç¨æ·ç©ºé´
åºç¨æ¯è¿è¡å¨æä½ç³»ç»ä¸è¿è¡çç¨åºï¼å·¥ä½å¨ç¨æ·ç©ºé´ã
- é离
å¤äºå®å ¨æ§åç¨³å®æ§èèï¼ç¨æ·ç©ºé´ç¨åºæ æ³ç´æ¥æ§è¡å æ ¸ä»£ç ï¼ä¾å¦ï¼I/O 读åãå建æ°è¿ç¨/线ç¨ï¼ï¼ä¹æ æ³è®¿é®å æ ¸æ°æ®ï¼å¿ é¡»éè¿ç³»ç»è°ç¨ã
2.2 ç³»ç»è°ç¨çå®ä¹
ç³»ç»è°ç¨ï¼Syscallï¼ æ¯ä¸ç§è½¯ä¸æå¤çç¨åºï¼ç¨äºè®©ç¨åºä»ç¨æ·æé·å ¥å æ ¸æï¼ä»¥æ§è¡ç¸åºçæä½ã
2.3 ç³»ç»è°ç¨çä½ç¨
å½åçç³»ç»è°ç¨æ¶ï¼ä¼è®©ç¨åºä»ç¨æ·æé·å ¥å æ ¸æï¼ä»¥æ§è¡ç¸åºçæä½ã
2.4 ç³»ç»è°ç¨ä¸æå¤çç¨åºçæµç¨
- 1ãç¨åºä»ç¨æ·æé·å ¥å æ ¸æ
- 2ãæ ¹æ®ç³»ç»è°ç¨å·ï¼å¨ç³»ç»è°ç¨è¡¨ä¸æ¥æ¾å¯¹åºçç³»ç»è°ç¨å½æ°çå åå°åï¼æ§è¡ç³»ç»è°ç¨å½æ°ã
- 3ãç¨åºä»å æ ¸æè¿åç¨æ·æ
åèèµæ
- ãç¨åºæ¯ææ ·è·èµ·æ¥çãï¼ç¬¬ 9ã11 ç« ï¼ââ [æ¥]ç¢æ³½ä¹ é è
- ãLinuxå æ ¸è®¾è®¡çèºæ¯ï¼å¾è§£Linuxæä½ç³»ç»æ¶æè®¾è®¡ä¸å®ç°åçï¼ç¬¬2çï¼ãï¼ç¬¬ 1 ç« ï¼ââ æ°è®¾è®¡å¢é è
- ãLinuxå æ ¸åæååºç¨ãï¼ç¬¬1.5 èã第 4 ç« ï¼ââ éç§ è
- ãLinux ç³»ç»è°ç¨ï¼syscallï¼åçã ââ Gityuan è
- ãLinuxå æ ¸åæ-ç³»ç»è°ç¨ç¨æ·æå°å æ ¸ææµç¨(åãäº)ã ââ Linux åäº«å® è
- ãç¨åºåçèªæä¿®å »Â·é¾æ¥ãè£ è½½ä¸åºãï¼ç¬¬ 12 ç« ï¼ââ ä¿ç²å ç³å¡ æ½ç±æ° è
æ¨èé 读
- å¯ç å¦ | Base64æ¯å å¯ç®æ³åï¼
- ç®æ³é¢è¯é¢ | åæº¯ç®æ³è§£é¢æ¡æ¶
- ç®æ³é¢è¯é¢ | é¾è¡¨é®é¢æ»ç»
- è®¡ç®æºç½ç» | å¾è§£ DNS & HTTPDNS åç
- Android | è¯´è¯´ä» android:text å° TextView çè¿ç¨
- Android | é¢è¯å¿ é®ç Handlerï¼ä½ ç¡®å®ä¸ççï¼
- Android | å¸¦ä½ æ¢ç©¶ LayoutInflater å¸å±è§£æåç
- Android | View & Fragment & Window ç getContext() ä¸å®è¿å Activity åï¼