æ¥æ¬èª | English
Android 端æ«äžã§ SFTP ãµãŒããŒãåäœãããPC çã® SFTP ã¯ã©ã€ã¢ã³ããã端æ«ã®ãã¡ã€ã«ã·ã¹ãã ïŒå éšã¹ãã¬ãŒãžã»SD ã«ãŒãïŒãžã¯ã€ã€ã¬ã¹ã«ã¢ã¯ã»ã¹ã»ãã¡ã€ã«è»¢éã§ããããã«ããã¢ããªã§ãã
éçºè åãã®èŠä»¶ãèšèšãåè³ªåºæºãããŒãããã㯠DEVELOP.md ãåç §ããŠãã ããã
æ¬ã¢ããªã¯ Android ããã€ã¹ã SFTPïŒSSH File Transfer ProtocolïŒãµãŒããŒãšããŠåäœãããåäž Wi-Fi ãããã¯ãŒã¯äžã® PC ãªã©ããã¯ã€ã€ã¬ã¹ã§ãã¡ã€ã«ãèªã¿æžãã§ããããã«ããŸããUSB ã±ãŒãã«ãªãã§ã䜿ãæ
£ãã SFTP ã¯ã©ã€ã¢ã³ãïŒWinSCPãFileZillaãCyberduckãOpenSSH ã® sftp ã³ãã³ããªã©ïŒãã端æ«ã®ã¹ãã¬ãŒãžãžã¢ã¯ã»ã¹ã§ããŸãã
- SFTP ãµãŒããŒã®èµ·å/忢: ããŒã ç»é¢ã®ã¯ã³ã¿ãããã¿ã³ã§èµ·åã»åæ¢ã皌åäžã¯éç¥é åã«åžžé§è¡šç€ºãããŸãã
- èªèšŒæ¹åŒ
- ãã¹ã¯ãŒãèªèšŒïŒãŠãŒã¶ãŒåã»ãã¹ã¯ãŒããèšå®ç»é¢ãã倿Žå¯èœïŒ
- å ¬ééµèªèšŒïŒEd25519 / ECDSA / RSAãæå€§ 10 éµãŸã§ç»é²å¯èœãGitHub ã¢ã«ãŠã³ãããã®äžæ¬ã€ã³ããŒãã«ã察å¿ïŒ
- åæ¹ãåå¥ã«æå¹/ç¡å¹åã§ããããããã§èªèšŒæåããã°ãã°ã€ã³å¯èœïŒäž¡æ¹ç¡å¹æã¯ãµãŒããŒèµ·åäžå¯ïŒ
- èªã¿åãå°çšã¢ãŒã: æå¹åãããšãèªèšŒæžã¿ãŠãŒã¶ãŒã§ãã£ãŠãæžã蟌ã¿ã»åé€ã»ãªããŒã ã»ãã£ã¬ã¯ããªäœæãæåŠãããŸãã
- ãã«ãŒããã©ãŒã¹å¯Ÿç: åäž IP ããã®é£ç¶èªèšŒå€±æãæ€ç¥ããäžæçã«æ¥ç¶ãæåŠããŸãã
- ãã©ã¢ã°ã©ãŠã³ããµãŒãã¹ã«ããåžžé§åäœ: ã¢ããªãéããŠããåžžé§éç¥ãããµãŒããŒç¶æ ã®ç¢ºèªã»åæ¢æäœãã§ããŸãã
- ã¹ãã¬ãŒãžã¢ã¯ã»ã¹
- ãã€ãã£ãã¢ãŒãïŒå šãã¡ã€ã«ã¢ã¯ã»ã¹æš©éã§å éšå ±æã¹ãã¬ãŒãžã SD ã«ãŒãã«çŽæ¥ã¢ã¯ã»ã¹ïŒ
- SAF ã¢ãŒãïŒStorage Access Framework ã«ãããã©ã«ãéžæãéžæãããã©ã«ãã®ã¿ã«æå°éã®æš©éã§ã¢ã¯ã»ã¹ïŒ
- æ¥æ¬èªã»è±èª UI: 端æ«èšèªã«èªå远åŸãã¢ããªå ã§æååãæ¿ããå¯èœã
- ãã°æ©èœ: æ¥ç¶ã»è»¢éã»ãšã©ãŒãã°ã®ãªã¢ã«ã¿ã€ã 衚瀺ããã£ã«ã¿ãæ€çŽ¢ãå ±æã
| é ç® | èŠä»¶ |
|---|---|
| OS | Android 8.0 (API 26) ä»¥äž |
| ã¿ãŒã²ãã SDK | Android 14 (API 34) |
| ãããã¯ãŒã¯ | Wi-FiïŒIPv4 / IPv6ïŒãSFTP ã¯ã©ã€ã¢ã³ããšåäžãããã¯ãŒã¯ã«æ¥ç¶ããŠããããš |
| èšèª | æ¥æ¬èªïŒããã©ã«ãïŒã»è±èª |
æ¬ã¢ããªã¯ Google Play ã§ã¯é åžãããAPK ãã¡ã€ã«ãçŽæ¥é åžïŒãµã€ãããŒãïŒãã圢åŒã§ãã
- é
åžããã APK ãã¡ã€ã«ïŒäŸ:
sftpserver-vX.Y.Z.apkïŒã Android 端æ«ã«ã³ããŒããŸãã - 端æ«ã§ APK ãã¡ã€ã«ãã¿ããããŠã€ã³ã¹ããŒã«ãéå§ããŸãã
- ãæäŸå
äžæã®ã¢ããªãã«é¢ããèŠåã衚瀺ãããå Žåã¯ã以äžã®æé ã§èš±å¯ããŠãã ããã
- Android 8ã10 ç³»: ã€ã³ã¹ããŒã«æã®ãã€ã¢ãã°ã§ããã®ãœãŒã¹ãèš±å¯ããéžæ
- Android 11 以é: ãèšå®ãâãã¢ããªãâãç¹å¥ãªã¢ããªã¢ã¯ã»ã¹ãâãäžæãªã¢ããªã®ã€ã³ã¹ããŒã«ããããAPK ãéããã¢ããªïŒãã¡ã€ã«ãããŒãžã£ãŒããã©ãŠã¶ïŒã«å¯ŸããŠèš±å¯ãä»äž
- ã€ã³ã¹ããŒã«å®äºåŸãã¢ããªãèµ·åããŸãã
Google Play çµç±ã®ã€ã³ã¹ããŒã«ã§ã¯ãªããããPlay Protect ã«ããã¹ãã£ã³èŠåã衚瀺ãããããšããããŸããé åžå ãä¿¡é Œã§ããå Žåã¯ãã®ãŸãŸã€ã³ã¹ããŒã«ãç¶ç¶ããŠãã ããã
Obtainium ã䜿ããšãGitHub Releases ãã APK ãçŽæ¥ååŸããç¶ç¶çã«èªåæŽæ°ã§ããŸãã
- Obtainium ã¢ããªãã€ã³ã¹ããŒã«ããŸãïŒGitHub Releases ãŸã㯠F-Droid ããïŒ
- Obtainium ãèµ·åãããã¢ããªã远å ãâãURL ãå ¥åã
- 以äžã®ãªããžã㪠URL ãå
¥å:
https://github.com/thakyuu/SFTPServer_Android - ã远å ããã¿ããããŸããææ°ãªãªãŒã¹ã® APK ãã€ã³ã¹ããŒã«ããã以éã¯èªåçã«æŽæ°ããã§ãã¯ããŠéç¥ããŸã
åæèªèšŒæ å ±ã¯ãããŸããããµãŒããŒãèµ·åããåã«ãŠãŒã¶ãŒåãèšå®ãããã¹ã¯ãŒãèªèšŒãŸãã¯å ¬ééµèªèšŒã®å°ãªããšãäžæ¹ãå©çšå¯èœã«ããŠãã ããã
- ãèšå®ãâãèªèšŒããéã
- ãŠãŒã¶ãŒåïŒ1ã32æåïŒãèšå®ãã
- ãã¹ã¯ãŒãèªèšŒã䜿ãå Žåã¯ãã¹ã¯ãŒãïŒ8ã128æåïŒãèšå®ãããå ¬ééµèªèšŒã䜿ãå Žåã¯å ¬ééµã1件以äžç»é²ãã
- èšå®ãå®äºãããŸã§ãµãŒããŒã¯èµ·åã§ããŸãã
æšå¥š: ãã¹ã¯ãŒãã¯æšæž¬å°é£ãªãã®ã«ããå¯èœã§ããã°å ¬ééµèªèšŒãžã®åãæ¿ããæšå¥šããŸãã
ãµãŒããŒããã¡ã€ã«ãžã¢ã¯ã»ã¹ããããã«ãããããã®ã¹ãã¬ãŒãžã¢ã¯ã»ã¹æ¹åŒã®èš±å¯ãå¿ èŠã§ãã
- ãã€ãã£ãïŒæšå¥šã»ç°¡åïŒ: ãèšå®ãâãã¹ãã¬ãŒãžãã§ããã€ãã£ãããéžæããå šãã¡ã€ã«ã¢ã¯ã»ã¹ãæ±ãããããèš±å¯ããŸãïŒAndroid 11 以éã¯ãç¹å¥ãªã¢ããªã¢ã¯ã»ã¹ãâãå šãã¡ã€ã«ã¢ã¯ã»ã¹ãã®èšå®ç»é¢ãéããŸãïŒã
- SAFïŒãã©ã«ãéžæïŒ: ãèšå®ãâãã¹ãã¬ãŒãžãã§ãSAFïŒãã©ã«ãéžæïŒããéžæããããã©ã«ããéžæãããå ¬éããããã©ã«ããã·ã¹ãã ã®ãã©ã«ãéžæ UI ã§éžã³ãŸããéžæããæš©éã¯æ°žç¶åãããåèµ·ååŸãæå¹ã§ãã
ãããã®æš©éãèš±å¯ãããŠããªãç¶æ ã§ã¯ãµãŒããŒãèµ·åã§ããŸããã
ãã€ãã£ãã¢ãŒãã®ã¢ã¯ã»ã¹å
ãã£ã¬ã¯ããªéžæãã€ã¢ãã°ã«ã¯ã端æ«ã«æ¿å
¥ãããŠãã SD ã«ãŒãçã®å€éšããªã¥ãŒã ãèªåæ€åºãããããªã»ãããšããŠè¡šç€ºãããŸãïŒè¡šç€ºåãš /storage/XXXX-XXXX 圢åŒã®ãã¹ïŒããããéžã¶ãšãSAF ã®ãã©ã«ãéžæ UI ãçµç±ããã« SD ã«ãŒããžçŽæ¥ã¢ã¯ã»ã¹ã§ããŸãã
- Android 11ïŒAPI 30ïŒä»¥é: å šãã¡ã€ã«ã¢ã¯ã»ã¹æš©éã«ãã SD ã«ãŒããžã®èªã¿æžããå®å šã«ãµããŒããããŸãã
- Android 8ã10ïŒAPI 26ã29ïŒ: ãã©ãããã©ãŒã ã®å¶çŽã«ãããSD ã«ãŒãïŒã»ã«ã³ããªããªã¥ãŒã ïŒãžã® æžã蟌ã¿ãã§ããŸããããã®åºéã§ SD ã«ãŒãããã€ãã£ãã¢ãŒãã®ã«ãŒãã«èšå®ãããšãèªã¿åãå°çšã¢ãŒãïŒãèšå®ãâããµãŒããŒåäœãâãèªã¿åãå°çšã¢ãŒããïŒãæå¹ãªå Žåã«éãèªã¿åãå°çšã§èµ·åã§ããŸããæžã蟌ã¿ãå¿ èŠãªå Žå㯠SAFïŒãã©ã«ãéžæïŒæ¹åŒã䜿çšããŠãã ãããããã®ãã©ã«ãã«ã¯æžã蟌ããŸããããšãããšã©ãŒã衚瀺ãããå Žåã¯ããã®å¶çŽãåå ã§ãã
ãèšå®ãâãã¹ãã¬ãŒãžãâãã¢ã¯ã»ã¹å
ãã£ã¬ã¯ããªãã§ãSFTP æ¥ç¶æã«å
¬éãããã©ã«ããéžæããŸãããã€ãã£ãã¢ãŒãã®å Žåã¯ããªã»ããïŒäŸ: /storage/emulated/0ïŒãŸãã¯æå
¥åãSAF ã¢ãŒãã®å Žåã¯ãã©ã«ãéžæ UI ã§æå®ããŸããã¯ã©ã€ã¢ã³ãããéžæç¯å²ããäžäœãžç§»åããããšã¯ã§ããŸããã皌åäžã«å€æŽããå Žåã¯ãã¢ããªããµãŒããŒãå®å
šã«åèµ·åããŠåæ ããŸãã
- ããŒã ç»é¢ã®èµ·åãã¿ã³ãã¿ããããŸãã
- ç¶æ
衚瀺ãã皌åäžãã«å€ãããæ¥ç¶å
ã® IP ã¢ãã¬ã¹äžèЧãšããŒãçªå·ã衚瀺ãããŸãïŒããã©ã«ãããŒã:
2222ïŒã - è€æ°ã® IP ã¢ãã¬ã¹ïŒWi-FiãIPv6 çïŒãããå Žåã¯äžèЧãã該åœãããã®ãéžã³ãã¿ããããŠã³ããŒã§ããŸãã
ããŒã ç»é¢ã®ãæ¥ç¶æ å ±ãã³ããŒããã¿ã³ããã以äžã®åœ¢åŒã®æ¥ç¶æååãã¯ãªããããŒããžã³ããŒã§ããŸãã
sftp://<ãŠãŒã¶ãŒå>@<IP ã¢ãã¬ã¹>:<ããŒã>
sftp -P 2222 user@192.168.1.10ååæ¥ç¶æã«ãã¹ãéµã®ç¢ºèªãæ±ããããŸãã衚瀺ããããã£ã³ã¬ãŒããªã³ãããã¢ããªã®ãèšå®ãâãããŒãžã§ã³æ å ±ãã«è¡šç€ºãããå 容ãšäžèŽããããšã確èªããããã§æ¿èªããŠãã ããã
å ¬ééµèªèšŒã䜿ãå Žå:
sftp -P 2222 -i ~/.ssh/id_ed25519 user@192.168.1.10- ãæ°ãããµã€ããâ ãããã³ã«ã«
SFTPãéžæ - ãã¹ãå: 端æ«ã® IP ã¢ãã¬ã¹ãããŒã:
2222ïŒæ¢å®ïŒ - ãŠãŒã¶ãŒåã»ãã¹ã¯ãŒãããŸãã¯ç§å¯éµãã¡ã€ã«ãèšå®
- ããã°ã€ã³ãã§æ¥ç¶
- ããµã€ããããŒãžã£ãŒãâ æ°ãããµã€ããäœæ
- ãããã³ã«:
SFTP - SSH File Transfer Protocol - ãã¹ã: 端æ«ã® IP ã¢ãã¬ã¹ãããŒã:
2222 - ãã°ãªã³ã®çš®é¡: ãéåžžãïŒãã¹ã¯ãŒãèªèšŒïŒãŸãã¯ãéµãã¡ã€ã«ãïŒå ¬ééµèªèšŒïŒ
- ãæ¥ç¶ã
- ãæ°èŠæ¥ç¶ãâ ãããã³ã«ã§
SFTP (SSH File Transfer Protocol)ãéžæ - ãµãŒããŒ: 端æ«ã® IP ã¢ãã¬ã¹ãããŒã:
2222 - ãŠãŒã¶ãŒåã»ãã¹ã¯ãŒãããŸã㯠SSH ç§å¯éµãæå®
- ãæ¥ç¶ã
ããŒã ç»é¢ã®åæ¢ãã¿ã³ããŸãã¯åžžé§éç¥ã®ã忢ãã¢ã¯ã·ã§ã³ãããµãŒããŒã忢ã§ããŸãã忢æã«ã¯æ¥ç¶äžã®å šã»ãã·ã§ã³ãå®å šã«åæãããŸãã
ããŒããèªèšŒããããã¯ãŒã¯å ¬éç¯å²ãã¹ãã¬ãŒãžãèªã¿åãå°çšã¢ãŒããªã©ãµãŒããŒåäœã«åœ±é¿ããèšå®ã倿Žãããšãã¢ããªããµãŒããŒãå®å šã«åèµ·åããŠåæ ããŸããåèµ·åæã¯æ¥ç¶äžã®ã»ãã·ã§ã³ãåæãããŸãã
ãèšå®ãâãèªèšŒãâãå ¬ééµã管çãç»é¢ã®å³äžã«ããã€ã³ããŒãã¢ã€ã³ã³ãããGitHub ã¢ã«ãŠã³ãã«ç»é²æžã¿ã®å ¬ééµããŸãšããŠåã蟌ããŸãã
- ã€ã³ããŒãã¢ã€ã³ã³ïŒé²ããŒã¯ïŒãã¿ããããŸãã
- GitHub ã®ãŠãŒã¶ãŒåãå ¥åããŠãOKããæŒããŸãã
https://github.com/<ãŠãŒã¶ãŒå>.keysïŒGitHub ãç¡èªèšŒã»å¹³æã§å ¬éããŠããå ¬ééµäžèЧïŒããéµãååŸããauthorized_keysã«è¿œå ãããŸããã³ã¡ã³ããä»ããŠããªãéµã«ã¯èªåçã«github:<ãŠãŒã¶ãŒå>ãšããã³ã¡ã³ããä»äžãããç±æ¥ãåããããã«ãªããŸãã- å®äºãããšã远å n ä»¶ / ã¹ããã n ä»¶ / 倱æ n ä»¶ãã®åœ¢åŒã§çµæãã¹ããã¯ããŒã«è¡šç€ºãããŸãããã§ã«ç»é²æžã¿ã®éµïŒéè€ïŒãç»é²äžéïŒ10 ä»¶ïŒã«éããŠããéµã¯ã¹ããããšããŠã«ãŠã³ããããŸãã
GitHub åŽã«ãŠãŒã¶ãŒãååšããªããå ¬ééµã 1 ä»¶ãç»é²ãããŠããªããéä¿¡ã«å€±æããå Žåã¯ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããŸããæ¬æ©èœã¯è¿œå ã®ããŒããã·ã§ã³ãå€éšã©ã€ãã©ãªãå¿ èŠãšãããæ¢åã®
INTERNETæš©éã®ã¿ã§åäœããŸãã
Android ã®å€ãã®ç«¯æ«ã§ã¯ãããã¯ã°ã©ãŠã³ãã§åäœããã¢ããªãããããªãŒæ¶è²»åæžã®ãã匷å¶çµäºããããšããããŸããSFTP ãµãŒããŒãããã¯ã°ã©ãŠã³ãã§å®å®ããŠçšŒåããç¶ããã«ã¯ãæ¬ã¢ããªãããããªãŒæé©åã®å¯Ÿè±¡ããé€å€ããããšãåŒ·ãæšå¥šããŸãã
- ã¢ããªã®ãèšå®ãç»é¢ã«ãããããããªãŒæé©åããããããããªãŒæé©åããé€å€ããã¿ããããŸãã
- ã·ã¹ãã ãã€ã¢ãã°ã衚瀺ãããã®ã§èš±å¯ããŸãã
- é€å€ç¶æ ã¯èšå®ç»é¢ã«ãé€å€æžã¿ããæªé€å€ããšããŠè¡šç€ºãããŸãã
- ã·ã¹ãã ãã€ã¢ãã°ã衚瀺ãããªãããŸãã¯å¹æããªãå Žåã¯ãäžèšã®ã¡ãŒã«ãŒå¥æé ã䜵ããŠç¢ºèªããŠãã ããã
OS ã®ããããªãŒæé©åé€å€ã ãã§ã¯äžååãªç«¯æ«ã¡ãŒã«ãŒããããŸãã以äžã®æé ã䜵ããŠèšå®ããŠãã ããïŒã¡ãã¥ãŒå㯠OS ããŒãžã§ã³ã«ããå€å°ç°ãªããŸãïŒã
- ãèšå®ãâãã¢ããªãâãã¢ããªã管çãâ æ¬ã¢ããªãéžæ
- ãããããªãŒã»ãŒããŒãâãå¶éãªãããéžæ
- ãèªåèµ·åãããªã³ã«ãã
- ãèšå®ãâãããããªãŒãâãçé»åãâ æ¬ã¢ããªããå¶éãªããã«èšå®
- ïŒHyperOSïŒãã»ãã¥ãªãã£ãã¢ã㪠âãããããªãŒãâãçé»åèšå®ããããåæ§ã®é€å€èšå®ã確èª
- ãèšå®ãâãã¢ããªãâãã¢ããªèµ·å管çãâ æ¬ã¢ããªãéžæ
- ãæåã§ç®¡çãã«åãæ¿ãããèªåèµ·åããäºæ¬¡èµ·åããããã¯ã°ã©ãŠã³ãã§ã®åäœãããã¹ãŠæå¹å
- ãèšå®ãâãããããªãŒãâãã¢ããªã®èµ·åãã§åæ§ã«åå¥ç®¡çããªã³ã«ãã
- ãèšå®ãâãã¢ããªãâ æ¬ã¢ããªãéžæ âãããããªãŒã
- ãããã¯ã°ã©ãŠã³ãã§ã®äœ¿çšã®å¶éãªãããéžæ
- ãèšå®ãâãããããªãŒãšããã€ã¹ã±ã¢ãâãããããªãŒãâãããã¯ã°ã©ãŠã³ãã§ã®äœ¿çšãå¶éãããã¢ããªãã«æ¬ã¢ããªãå«ãŸããŠããªãããšã確èª
- ã¹ãªãŒãç¶æ ã®ã¢ããªïŒæªäœ¿çšã¢ããªã®èªåçµäºãªã¹ãããæ¬ã¢ããªãé€å€
- ãèšå®ãâãããããªãŒãâãã¢ããªã®ããããªãŒäœ¿çšãâ æ¬ã¢ããªãéžæ âãããã¯ã°ã©ãŠã³ãã§ã®å®è¡ãèš±å¯ããæå¹å
- ãèšå®ãâãã¢ããªç®¡çãâ æ¬ã¢ã㪠âãããããªãŒäœ¿çšã®è©³çްèšå®ãâãããã¯ã°ã©ãŠã³ãã§å®è¡ããèš±å¯
- ãçãšãã¢ãŒããçã®äžæ¬æé©åãªã¹ãããæ¬ã¢ããªãé€å€
- ãèšå®ãâãã¢ããªãâããã¹ãŠã®ã¢ããªãâ æ¬ã¢ããªãéžæ
- ãããããªãŒãâãå¶éãªãããéžæ
- ãã¢ããªã®äžæåæ¢ãèšå®ã§æ¬ã¢ããªããæªäœ¿çšã®ã¢ããªãäžæåæ¢ã察象ããé€å€ãããŠããããšã確èª
äžèšæé 㯠OS ããŒãžã§ã³ãã«ã¹ã¿ã UI ã®ã¢ããããŒãã«ãã倿Žãããå ŽåããããŸãã衚èšãšå®éã®ã¡ãã¥ãŒåãç°ãªãå Žåã¯ã端æ«ã®ãããããªãŒããçé»åãé¢é£ã®èšå®å ã確èªããŠãã ããã
- ãµãŒããŒãšã¯ã©ã€ã¢ã³ããåäž Wi-Fi ãããã¯ãŒã¯ã«æ¥ç¶ãããŠããã確èªããŠãã ããã
- ããŒã ç»é¢ã«è¡šç€ºãããŠããããŒãçªå·ãšã¯ã©ã€ã¢ã³ãåŽã®èšå®ãäžèŽããŠããã確èªããŠãã ããïŒæ¢å®
2222ïŒã - ãèšå®ãâããããã¯ãŒã¯ãã§ãããŒã«ã«ã®ã¿ãïŒ
127.0.0.1åŸ åïŒãæå¹ã«ãªã£ãŠããªãã確èªããŠãã ãããæå¹ãªå Žåãåäžç«¯æ«ä»¥å€ããã¯æ¥ç¶ã§ããŸããã - ã«ãŒã¿ãŒã端æ«åŽã®ãã¡ã€ã¢ãŠã©ãŒã«èšå®ã§ããŒãããããã¯ãããŠããªãã確èªããŠãã ããã
- ã¢ãã€ã«ããŒã¿éä¿¡ã®ã¿ã§ Wi-Fi ã«æ¥ç¶ããŠããªãå ŽåããµãŒããŒã¯å°éå¯èœãª IP ã¢ãã¬ã¹ãæããªãå¯èœæ§ããããŸãã
- ãèšå®ãâãã¹ãã¬ãŒãžãã§ãéžæäžã®ã¹ãã¬ãŒãžæ¹åŒïŒãã€ãã£ããŸã㯠SAFïŒã®æš©éãèš±å¯ãããŠããã確èªããŠãã ããã
- ãã€ãã£ãã¢ãŒãã®å Žåãå šãã¡ã€ã«ã¢ã¯ã»ã¹ã®èš±å¯ãã·ã¹ãã èšå®äžã§ç¡å¹åãããŠããªãã確èªããŠãã ããã
- èªèšŒæ¹åŒïŒãã¹ã¯ãŒãã»å ¬ééµïŒãäž¡æ¹ãšãç¡å¹ã«ãªã£ãŠãããšãµãŒããŒã¯èµ·åã§ããŸãããå°ãªããšãäžæ¹ãæå¹ã«ããŠãã ããã
- ãã¹ã¯ãŒãèªèšŒã䜿ãå Žåã¯ãã¹ã¯ãŒããå ¬ééµèªèšŒã ãã䜿ãå Žåã¯å ¬ééµãç»é²æžã¿ã確èªããŠãã ããã
- èµ·å倱æãã€ã¢ãã°ã«è¡šç€ºãããåå ãšåŸ©æ§æäœã«åŸã£ãŠãã ããã
SD ã«ãŒãã®æãå·®ãã OS ã®ã¢ããããŒãçã«ãããSAF ã§éžæãããã©ã«ããžã®æ°žç¶ã¢ã¯ã»ã¹æš©éã倱å¹ããããšããããŸããèšå®ç»é¢ã«ããã©ã«ãã«ã¢ã¯ã»ã¹ã§ããŸããããšããèŠåã衚瀺ãããå Žåã¯ããåéžæããããã©ã«ããéžã³çŽããŠãã ããã
ååæ¥ç¶æã«ã¯ã©ã€ã¢ã³ãããã¹ãéµã®ç¢ºèªãæ±ããã®ã¯æ£åžžãªåäœã§ãã衚瀺ããããã£ã³ã¬ãŒããªã³ãããã¢ããªã®ãèšå®ãâãããŒãžã§ã³æ
å ±ãã«è¡šç€ºãããŠãããã¹ãéµã®ãã£ã³ã¬ãŒããªã³ããšäžèŽããããšã確èªããŠããæ¿èªããŠãã ãããã¢ããªãåã€ã³ã¹ããŒã«ããããŸãã¯ãã¹ãéµãåçæãããšãã¯ã©ã€ã¢ã³ãåŽã§ããã¹ãéµã倿ŽãããããšããèŠåã衚瀺ãããŸãããã®å Žåã¯æ°ãããã£ã³ã¬ãŒããªã³ããå¥çµè·¯ã§ç¢ºèªããã¯ã©ã€ã¢ã³ãã® known_hosts ãã該åœãšã³ããªãåé€ããŠåæ¥ç¶ããŠãã ãããå¿åœããããªãå Žåã¯æ¥ç¶ãäžæ¢ããŠãã ããã
èšå®ç»é¢ã§ããããªãŒæé©åã®é€å€ç¶æ ã確èªãã端æ«ã¡ãŒã«ãŒç¬èªã®èªåèµ·åã»çé»åã»ããã¯ã°ã©ãŠã³ãå¶éãè§£é€ããŠãã ãããAndroid ãã¡ãŒã«ãŒã®ä»æ§ã«ãããé€å€åŸã OS ãããã»ã¹ãçµäºããå¯èœæ§ããããŸãã
å®è£ æã«å®ãèŠä»¶ãã¢ãŒããã¯ãã£ããã¹ãæ¹éãæªæ€èšŒäºé ãä»åŸã®æ©èœåè£ã¯ DEVELOP.md ãæ£æ¬ãšããŸãã
- Android StudioïŒææ°å®å®çæšå¥šïŒã§ãããžã§ã¯ãã«ãŒãïŒæ¬ãªããžããªïŒãéããŸãã
- ååãªãŒãã³æã« Gradle Sync ãå®è¡ããã
gradle/wrapper/gradle-wrapper.propertiesã®æå®ã«åºã¥ã Gradle wrapper ã解決ãããŸãã - äŸå解決å®äºåŸã
appã¢ãžã¥ãŒã«ãéžæãã宿©ãŸãã¯ãšãã¥ã¬ãŒã¿ïŒAPI 26 以äžïŒã§å®è¡ããŸãã
# JDK 㯠Android Studio 忢±ã®ãã®ã䜿çšïŒäŸïŒ
# Windows PowerShell ã®å Žå:
$env:JAVA_HOME = "C:\Program Files\Android\Android Studio\jbr"
# åäœãã¹ãïŒJVMïŒ
./gradlew.bat testDebugUnitTest
# ã³ãŒããã©ãŒããããã§ãã¯ïŒktlintïŒ
./gradlew.bat ktlintCheck
# éçè§£æïŒdetektïŒ
./gradlew.bat detekt
# domain/data å±€ã®ã«ãã¬ããžæ€èšŒïŒéŸå€ 70%ïŒ
./gradlew.bat jacocoDomainDataCoverage
# Android instrumented testïŒæ¥ç¶æžã¿ç«¯æ«ãŸãã¯ãšãã¥ã¬ãŒã¿ãŒãå¿
èŠïŒ
./gradlew.bat connectedDebugAndroidTest-
眲åéµãæªçæã®å Žåã¯çæããŸãã
keytool -genkeypair -v -keystore release.jks -alias sftpserver -keyalg RSA -keysize 4096 -validity 10000
-
ãªããžããªã«ãŒãã®
keystore.properties.sampleãkeystore.propertiesãšããŠã³ããŒããstoreFile/storePassword/keyAlias/keyPasswordãå®éã®å€ã«çœ®ãæããŸããkeystore.propertiesã¯.gitignore察象ã®ããã³ããããããŸããã -
ãªãªãŒã¹ APK ããã«ãããŸãã
./gradlew.bat assembleRelease
keystore.propertiesãååšããªãå Žåã§ã Gradle Sync ãassembleReleaseèªäœã¯å€±æããŸããããçæããã APK ã¯çœ²åãªãïŒã€ã³ã¹ããŒã«äžå¯ïŒã«ãªããŸããé åžçšãã«ãã§ã¯å¿ ã眲åèšå®ãè¡ã£ãŠãã ããã
- Kotlin ã³ãŒãã£ã³ã°èŠçŽïŒktlintïŒãdetekt ã«ããéçè§£æïŒ
config/detekt/detekt.ymlïŒã«æºæ ããŸãã - ã³ãããåã«
ktlintCheck/detekt/testDebugUnitTest/jacocoDomainDataCoverageãéããŠãã ããã
æ¬ã¢ããªèªäœã®ã©ã€ã»ã³ã¹ã¯ MIT License ã§ãã詳现㯠LICENSE ãã¡ã€ã«ãåç §ããŠãã ããã
æ¬ã¢ããªã䜿çšããŠãããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®ã©ã€ã»ã³ã¹äžèЧã¯ãã¢ããªå ã®ãèšå®ãâãããŒãžã§ã³æ å ±ãç»é¢ãã確èªã§ããŸãã