
ãé åžãPythonã§Androidã¢ããªäœæããŠã¿ã #12 ããã¯ã¢ãããµãŒããŒã®æ§ç¯ãšå®æ
ããã«ã¡ã¯ãRcatã§ãã
ããã¯ã¢ããã¢ããªããããã倧詰ã!ä»åã¯ãµãŒããŒåŽã®è©±ã§ãã
ååãŸã§ã§ã¢ããªã¯ã»ãŒå®æããŸããã®ã§ãä»ãŸã§Windowsã§åãããŠãããµãŒããŒãäºå®éãLinuxã®æ¹ã«å
¥ããŠãããŸãã
ãŸããä»åããvenvä»®æ³ç°å¢ãrequirementsãçšæããããã«ããŸãã
ãããšäžéšã¯ã©ã€ã¢ã³ãã®ä¿®æ£ãè¡ããŸãããUrlRequestã®éšåã§wait()ãšã³ãŒã«ããã¯ã«ã€ããŠåèããŸããã
æ¬ã·ãªãŒãºã¯ãã¡ã
ãµãŒãã«ã€ããŠ
æŠèŠ
ãŸãã¯ãµãŒããŒã«ã€ããŠããããã§ãã
ä»åã®ããã¯ã¢ããã¯WebãµãŒããŒã®ä»çµã¿ã䜿çšããŠè¡ã£ãŠããŸãã
詳ããåäœã¯äžèšã®éãã§ãã
ãŠãŒã¶ãŒèªèšŒ
æ¥ç¶ããã端æ«ã¯1ã€ãšã¯éããªãã®ã§ã端æ«ãèŠåãããšãã£ãæå³ã§ã®èªèšŒã§ãã
èªèšŒãè¡ããšã¯ãããŒãçºè¡ãããããã¯ã¢ãããè¡ãæºåãã§ããŸãããã¡ã€ã«ãªã¹ãã®ååŸ
ã¯ã©ã€ã¢ã³ãã¯ãµãŒããŒã«å¯ŸããŠãã©ã«ãã®äžã«ãããã¡ã€ã«ã®ãªã¹ããéä¿¡ããŸãã
ãµãŒããŒã¯ãªã¹ããèŠãŠããã¡ã€ã«ã®æç¡ãæŽæ°æ¥æã«ãªã©ããå¿ èŠãªããŒã¿ã®ã¿ã«çµããªã¹ããè¿åŽããŸããããŒã¿ã®ã¢ããããŒã
ã¯ã©ã€ã¢ã³ãã¯åãåã£ããå¿ èŠãã¡ã€ã«ãªã¹ããã®ããŒã¿ãã¢ããããŒãããŠãããŸãã
倧ããªããŒã¿ã¯åå²ããŠéä¿¡ããããšããããŸãã
詳现ãªäœããã¿ã¯äžèšã§è¡ã£ãŠããŸãã
â»ãã®èšäºã§ã¯ãµãŒããŒåŽãå€å°ã®å€æŽã¯ãããŸãã®ã§äžèšèšäºãšå¿
ãããåäœãäžèŽããããã§ã¯ãããŸããã
Flaskã®æäœã«ã€ããŠã¯Flaskã®äœ¿ãæ¹ã¯äžèšåç»ãã芧ãã ããã
åææ®µéãããã¡ã€ã«ã®ã¢ããããŒããŸã§ç¶²çŸ
ããŠããŸãã
ãµãŒããå°å ¥
宿©ç޹ä»
å°å
¥ããã®ã¯äžèšã®PCã§ãã
ã¹ããã¯ãªã©ã¯ãã¡ãã®èšäºãåç
§ããŠãã ããã
å°å ¥
ãŸãã¯LinuxãµãŒããŒã«ããã°ã©ã ã転éããŸãã
ãµãŒããŒåŽã§ã¯é©åœãªãã©ã«ããçšæããŠãããŸãããã®äžã«ããã¯ã¢ããçšã®ãã©ã«ããŒãäœæãããã®ã§ãããã念é ã«çœ®ããŠé
眮ããŠãã ããã

å 容
次ã«ãµãŒããŒã®ããã±ãŒãžå 容ã«ã€ããŠç޹ä»ããŸãã
create.sh
ä»®æ³ç°å¢ãäœæãå¿ èŠã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããã¹ã¯ãªããã§ãã
requirementsã䜿çšããã®ã§ãç§ãšåãããŒãžã§ã³ã®ã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããŸãã
ä»®æ³ç°å¢ã䜿çšããããšã§ãä»ã®ã¹ã¯ãªããã®å®è¡ç°å¢ãšåãé¢ãããšãã§ããŸãããŸããã©ã€ãã©ãªã®åæã容æã«ããªããŸããstart.sh
äœæããä»®æ³ç°å¢ã䜿çšããŠãµãŒããŒãèµ·åããŸããsystemdã䜿ãå Žåããã®ã¹ã¯ãªãããæå®ããŸãã
ä»®æ³ç°å¢ã䜿ããªãå Žåã¯ããã®ã¹ã¯ãªããã䜿çšããããšã¯ã§ããŸããã

å®è¡
start.shãå®è¡ããããšã§ãµãŒããŒãèµ·åã§ããŸãã
ã¢ããªåŽã®ãµãŒããŒèšå®ã«ãµãŒããŒã®ipã¢ãã¬ã¹ãæå®ããŠãã ãã
æºåãæŽã£ãããã¢ããªåŽã§ããã¯ã¢ããéå§ãã¿ã³ãæŒãããšã§ããã¯ã¢ããããããšãã§ããŸãã


systemdã䜿ã
Linuxèµ·åæã«èªåèµ·åãããã«ã¯systemdã䜿çšããŸãã
ãŠããããã¡ã€ã«ã®äŸã¯äžèšã®éãã§ãã
systemdã®äœ¿ãæ¹ã«ã€ããŠã¯æåã®å®æ©ç޹ä»ã®èšäºã§è©³ãã解説ããŠããŸãã®ã§ç¢ºèªããªããèšå®ããŠãã ããã

ã¯ã©ã€ã¢ã³ãåŽä¿®æ£
ä»åå®éšãããã«ããããããã€ãåé¡ããã£ããããã¯ã©ã€ã¢ã³ãã®ä¿®æ£ãè¡ããŸããã
UrlRequestã§timeoutãå¹ããªã
ãµãŒããŒãšã®æ¥ç¶ãã§ããªãã£ãå Žåããšã©ãŒã§ãçµäºããããã«ããŠããã®ã§ããããµãŒããŒãèµ·åããã«å®è¡ããŠã¿ããšããããã€ãŸã§ãã£ãŠãäœãèµ·ããŸããã§ããã
ã©ãããæ¥ç¶ã§ããªãæç¹ã®wait()ã§æ¢ãŸã£ãŠå
ã«é²ãŸãªãç¶æ
ã§ãããã¿ã€ã ã¢ãŠãã¯5ç§ã§èšå®ããŠããã®ã§ãå
šãäœãèµ·ããªããšããã®ã¯äžèªç¶ã§ãã

ä»åã®ã³ãŒãã¯ã³ãŒã«ããã¯ã䜿ãããã²ãšã€ã®é¢æ°å
ã§åæçã«å®è¡ãããããªåœ¢ã«ãªã£ãŠããŸãã
ã©ããããã®æ¹æ³ã ãšã¿ã€ã ã¢ãŠããããŸãæ©èœããªããããªã®ã§ãã³ãŒã«ããã¯ã䜿çšããããšæããŸãã
ãšã¯ããâŠã³ãŒã«ããã¯å°çãå«ãªã®ã§ä»ã®ç¶æ
ã«ããŠããèš³ãªã®ã§ã¡ãã£ãšå·¥å€«ããŸãã
ãŸãã¯ã³ãŒã«ããã¯é¢æ°ã®äœæã§ãã
ä»åãåæçã«å®è¡ãã颿°ã®äžã«ã¯ããŒãžã£ãŒã§äœæããŸãããããŠãã®é¢æ°ã®äžã§å€åŽã®ãã©ã°ãæäœããŸãã
ããããããšã§ã³ãŒã«ããã¯ã䜿çšãã€ã€ã³ãŒã«ããã¯å°çã«ããªããªããšããèšèšã§ãã

ãªã¯ãšã¹ãã®è¡ã¯ãã®ããã«å€æŽããŠããŸãã
ãªã¯ãšã¹ãæåã®ã³ãŒã«ããã¯ãšãšã©ãŒã®æã®ã³ãŒã«ããã¯ãæå®ããŠããŸãã
ãããŠãã³ãŒã«ããã¯é¢æ°å
ã§å€æŽãããã©ã°ã䜿çšããç¡éã«ãŒããçµã¿ãŸãããšã©ãŒã«ãªãããæ£åžžã«ãªã¯ãšã¹ããéããã§ãã®ç¡éã«ãŒãããæããããããã§ããã
远èš:on_errorã¯ã¬ã¹ãã³ã¹ã³ãŒã400å°ã衚ããã®ã§ã¯ãªãã£ãã§ãã
ã¬ã¹ãã³ã¹ã³ãŒã400ããã£ããããã«ã¯on_failureã䜿ããŸãã

å®è¡çµæããã¡ã
ãµãŒããŒãèµ·åããã«ããã¯ã¢ãããã¹ã¿ãŒãããå Žåã5ç§ã§ã¿ã€ã ã¢ãŠããæ£åžžã«çµäºããŸããã
ãã®ã©ã€ãã©ãªã¯ã³ãŒã«ããã¯ãåºæ¬ã§ãåæçãªäœ¿ãæ¹ã¯äžå¿ã§ããçšåºŠã®ã¹ã¿ã³ã¹ã®ããã§ããã
wait()ã䜿ããã«ã³ãŒã«ããã¯ã«ãã©ã°ãå
¥ããæ¹ãããæãã¯ããŸããã

ã¡ãªã¿ã«ãã®æ¹æ³ãåã£ããšãããwait()ã䜿ã£ãæåé ã ã£ãã¢ããããŒããæšæºäžŠã¿ã«UPããŸããã
ãã°ã®æµããé床ã¯ãã¡ã
wait()ã䜿çšããŠããæ¿é æä»£ã¯ãã¡ã
ã»ãã·ã§ã³ã®å»¶é·
èªèšŒæã«ã¯ãããŒãçºè¡ãããŸãããæå¹æéãèšå®ãããŠããæéãåãããšãµãŒããŒãã¯ã©ã€ã¢ã³ããèå¥ã§ãããšã©ãŒã«ãªããŸãã
äžèšã¯ãµãŒããŒåŽã§ã®å»¶é·åŠçã§ããããã®åæ ãããŸãã§ããŠããªãã£ãã®ã§ã¯ã©ã€ã¢ã³ãã®æ¹ãä¿®æ£ããŸãã

çµã¿èŸŒãã®ã¯ãã¡ã€ã«ãªã¹ã颿°ã§ãã
ãµãŒããŒã®åŠçã«äžèšã®èšè¿°ãããå Žåãã¬ã¹ãã³ã¹ããããŒã«set-cookieã®ã¢ã€ãã ãå
¥ããŸãã
åååŸããã¯ãããŒãã°ããŒãã«é åã«ä¿æããŠäœ¿ããŸãã

ã¬ã¹ãã³ã¹ããããŒã®äŸ
ãã¡ããšæ°ã¯ãããŒãçºè¡ãããŠããŸãã
{'Server': 'Werkzeug/3.0.2 Python/3.10.12', 'Date': 'Wed, 01 May 2024 06:16:28 GMT', 'Content-Type': 'text/html; charset=utf-8', 'Content-Length': '374', 'Vary': 'Cookie', 'Connection': 'close', 'Set-Cookie': 'session=eyJfcGVybWFuZW50Ijp0cnVlLCJjbGllbnQiOiJNYWluUEMifQ.ZjHePA.Lxvqq9Rqwg9gKdXLOyGEeR8kACw; Expires=Wed, 01 May 2024 06:21:28 GMT; HttpOnly; Path=/'}ãŸãšã
ä»åã¯ãµãŒããŒåŽã®éçšæºåãè¡ããŸãããç°¡åãªãã¹ãããŒã¿ã ãã§ãªãæ¬çªã®ãã«ããã¯ã¢ãããããŠã¿ããšãŸã ãŸã è²ã
åé¡ãããã¯ã©ã€ã¢ã³ããé²åããŸããã
ããã«ãŠã²ãšãŸãVer1.0.0ã¯å®æã§ããããã
ãŸã ä»ãããæšæ¥ã¯ããã®ã§ä»åŸã¯ã¢ããããŒããšãã圢ã§é²ããŠããããšæããŸãã
ããã§ã¯ãŸããäŒãããŸãããã
ããŒã¿é åž
ä»åäœæããå šããŒã¿ã®é åžãè¡ããŸãã
ã¢ããª(apk)
é
åžã·ã¹ãã ããé
åžããŠããŸãã
å
¥ææé ãä»çµã¿ã¯ãªã³ã¯å
ã§è§£èª¬ããŠããŸãã®ã§ã確èªãã ãã
ãµãŒããŒã®ã¿
ã¢ããªãšåããé åžã·ã¹ãã ã§ã
å šãŠ
ã³ã³ãã€ã«æžã¿ã¢ããªãé€ãããœãŒã¹ãã¹ãŠã¯ãã¡ãã
ãŸãããµãŒããŒã®ã¢ããããŒãã¯ãã¡ãã§ã®ã¿é
åžãšãªããŸãã
ååŸã«ã¯æäžéšèšè¿°ã®ããŒã¯ãŒããå¥éå¿
èŠã§ãã