Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Droidkaigi 2017
Search
kazy1991
March 09, 2017
Technology
13k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Droidkaigi 2017
kazy1991
March 09, 2017
More Decks by kazy1991
See All by kazy1991
基本のAndroid View開発ドキュメント
kazy1991
0
2.9k
Cookpad.apk#1-ReactNativeについて
kazy1991
1
6.7k
いつか使ってみたいOperatorたち
kazy1991
0
520
Cookpad TechKitchen#6-android-with-ml-and-scheduler
kazy1991
0
750
RxJava Droidkaigi
kazy1991
1
120
rx.pdf
kazy1991
0
150
はじめてのvimscipt
kazy1991
1
470
Other Decks in Technology
See All in Technology
消えない 動かない 効かない
yama3133
1
120
Minecraft JavaのMODをSwiftで作る
1mash0
0
110
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
330
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
0
790
安心して変更できるWebフロントエンドの作り方
pirosikick
4
1.8k
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
810
GoCon2026 - Open Source, Open World
sanposhiho
4
3.5k
AI 時代のスタートアップエコシステ厶から考究する技術的負債との向き合い方
m3m0r7
PRO
0
140
Multica × 長期記憶:40個のミニプロジェクト管理
eiei114
1
260
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
660
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
5
430
range over func 2年間の軌跡 Issue #56413 はGoのエコシステムをどう変えたか
ryujicre8ive
0
120
Featured
See All Featured
Faster Mobile Websites
deanohume
310
32k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
Speed Design
sergeychernyshev
33
2.1k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Raft: Consensus for Rubyists
vanstee
141
7.7k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
The SEO identity crisis: Don't let AI make you average
varn
0
550
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
Test your architecture with Archunit
thirion
2
2.4k
Ethics towards AI in product and experience design
skipperchong
2
370
Transcript
"OESPJEఆظ࣮ߦॲཧೖ LB[Z LB[VLJZPTIJEB
ࣗݾհ ࢯ໊٢ాສً ॴଐDPPLQBE*OD 5XJUUFS!LB[ HJUIVCLB[Z %SPJELBJHJͷൃදࢿྉ
ఆظ࣮ߦॲཧͱʜ Ϣʔβʔͷૢ࡞ͱؔͳ͘ɺ ҰఆͷִؒͰॲཧΛ࣮ߦ͢Δ ఆظ࣮ߦॲཧͷྫ ϑΟʔυͷߋ৽ ϩʔΧϧ͔Βͷ௨
ఆظ࣮ߦॲཧͷࣄྫ ʮྉཧ͖Ζ͘ʯ ྉཧࣸਅ͚ͩ͋ͭΊͯه͢Δ
ྉཧ͖Ζ͘ͷΈ ʹࣸਅ͕Ճ͞ΕΔ ҰఆִؒͰ৽نࣸਅΛ୳͢ ࣸਅΛྉཧఆ͢Δ ࣸਅΛΞοϓϩʔυ͢Δ ͜͜ʹఆظ࣮ߦॲཧ
༨ஊ #SPBEDBTU3FDFJWFSͰ/&8@1*$563&ΠϕϯτΛ ड͚औΕ͍͍ͷͰʁ w ॳظͷϓϩτλΠϓͰ͜ͷํͰ࣮͍ͯͨ͠ w ఆظ࣮ߦॲཧ͕ෆཁͳͷͰ࣮͕γϯϓϧͰྑ͔ͬͨ w શͯͷΧϝϥΞϓϦ͕/&8@1*$563&ΠϕϯτΛૹͬͯ
͘ΕΔΘ͚Ͱͳ͍ w %FQSFDBUFEJO"1*MFWFMͳͷͰ࠾༻͠ʹ͍͘
ఆظ࣮ߦॲཧΛ͍ͨ͠߹ɺ Έͳ͞ΜͲ͏ͯ͠·͔͢ʁ "MBSN.BOBHFS
"MBSN.BOBHFS "QJ-FWFM͔Βར༻Ͱ͖Δ ݹ͔͘Βར༻͞Ε͍ͯΔ"1*Ͱωοτ্ʹݟଟ͍ ΠϯλʔϑΣʔε͕γϯϓϧͰखܰʹ͑Δ ʮ˓˓ͷ࣌ؒʹͳͬͨΒ˚˚Λىͯ͘͜͠Εʯ
"MBSN.BOBHFSαϯϓϧ #SPBEDBTU3FDFJWFS public class AlarmReceiver extends BroadcastReceiver {
private static Intent createIntent(Context context) { return new Intent(context, AlarmReceiver.class); } public static PendingIntent createPendingIntent(Context context) { return PendingIntent.getBroadcast(context, 0, createIntent(context), 0); } @Override public void onReceive(Context context, Intent intent) { // ͜͜ͰServiceΛىಈ͢ΔͳͲ.. } } # AndroidManifest.xml <receiver android:name=".AlarmReceiver" android:exported="false" />
"MBSN.BOBHFSαϯϓϧ εέδϡʔϧ public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) { //.. PendingIntent intent = AlarmReceiver.createPendingIntent(this); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, fiveSecondsLater(), intent); } } 1FOEJOH*OUFOUͱىಈ࣌ؒΛ"MBSN.BOBHFSʹ͢
"MBSN.BOBHFS ͪΐͬͱඍົͳ! 04ʹΑͬͯڍಈ͕ҧ͏ ࠶ىಈ͢Δͱεέδϡʔϧ͕ফ͑ΔͷͰରԠ͕ඞཁ ࣌ؒҎ֎ͷ੍ʹରԠͰ͖ͳ͍
ωοτϫʔΫ͕ܨ͕͍ͬͯͳ͍࣌ όοςϦʔ͕ܨ͕͍ͬͯΔ࣌ ࣦഊ࣌ͷϦτϥΠॲཧ͕ͳ͍
"MBSN.BOBHFSͷ͍ॴ ͍ͯΔέʔε ࣌ؒʹݫີͳλεΫͷ࣮ ͍͍ͯͳ͍έʔε ࠶ىಈ࣌ͷαϙʔτ ϦτϥΠػߏ͕΄͍͠߹
ిྗޮΛҙࣝͨ͠ϋΠύϑΥʔϚϯεͳॲཧ
ύϑΥʔϚϯεΛҙࣝͨ͠ ϞμϯͳδϣϒཧͷΈ +PC4DIFEVMFS
+PC4DIFEVMFS -PMMJQPQͰొͨ͠ൺֱత৽͍͠"1* 4FSWJDFΛҙͷλΠϛϯάͰɺىಈ͢Δ͜ͱ͕ग़དྷΔ δϣϒεέδϡʔϥʔ DPPLQBEΞϓϦ ྉཧ͖Ζ͘ Ͱ+PC4DIFEVMFSΛ࠾༻ͨ͠
+PC4DIFEVMFSαϯϓϧ 4FSWJDFଆ public class MyJobService extends JobService { @Override
public boolean onStartJob(JobParameters job) { // ͜͜ʹॲཧΛهड़͢Δ return false; } @Override public boolean onStopJob(JobParameters job) { return false; } } <service android:name=".MyJobService" android:exported="true" android:permission="android.permission.BIND_JOB_SERVICE" />
+PC4DIFEVMFSαϯϓϧ 4FSWJDFଆ public class MyJobService extends JobService { @Override public
boolean onStartJob(JobParameters params) { // ͜͜ϝΠϯεϨου tooHeavyJob() .subscribeOn(Schedulers.io()) .subscribe(result -> { // Կ͔ߋ৽ॲཧͳͲΛߦ͏ jobFinished(params, false); // δϣϒ͕ࣦഊͨ͠߹trueΛ͢ͱ࠶εέδϡʔϧ }); // ಉظॲཧͷ߹false/ඇಉظॲཧͷ߹trueΛฦ͢ return true; } @Override public boolean onStopJob(JobParameters params) { // δϣϒ͕ྃ͢ΔલʹγεςϜ͕Ωϟϯηϧ͢ΔͱݺΕΔ return false; } }
+PC4DIFEVMFSαϯϓϧ εέδϡʔϧॲཧ public class MyJobService extends JobService {
private static final int PERIODIC_JOB_ID = 1; public static void setPeriodicSchedule(Context context) { JobScheduler scheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); JobInfo jobInfo = new JobInfo.Builder(PERIODIC_JOB_ID, new ComponentName(context, MyJobService.class)) .setPeriodic(TimeUnit.MINUTES.toMillis(30)) .setPersisted(true) .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY) .build(); scheduler.schedule(jobInfo); } public static void cancelPeriodicSchedule(Context context) { JobScheduler scheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); scheduler.cancel(PERIODIC_JOB_ID); } }
+PC4DIFEVMFSͰεέδϡʔϧʹར༻Ͱ͖Δ݅ ࠷େకΊΓ࣌ؒ TFU0WFSSJEF%FBEMJOF ࠷Ԇ࣌ؒ TFU.JOJNVN-BUFODZ
όοΫΦϑϦτϥΠํ TFU#BDLPGG$SJUFSJB ௨৴ڥͷ੍ TFU3FRVJSFE/FUXPSL5ZQF ॆిڥͷ੍ TFU3FRVJSFT$IBSHJOH ΞΠυϧঢ়ଶͷ੍ TFU3FRVJSFT%FWJDF*EMF ܁Γฦ͠ͷεέδϡʔϦϯά TFU1FSJPEJD ࠶ىಈ࣌ͷӬଓԽ TFU1FSTJTUFE
+PC4DIFEVMFSʹύϥϝʔλΛ͢ +PC*OGP#VJMEFSTFU&YUSBT 1FSTJTUBCMF#VOEMFFYUSBT PersistableBundle bundle = new PersistableBundle();
JobInfo jobInfo = new JobInfo.Builder(JOB_TAG, new ComponentName(this, MyJobService.class)) .setExtras(bundle) .build(); public class MyJobService extends JobService { @Override public boolean onStartJob(JobParameters params) { PersistableBundle bundle = params.getExtras(); // PersistableBundleεέδϡʔϧ࣌ʹӬଓԽ͞ΕΔͷͰɺ // ͜͜Ͱॻ͖͑ͯ࣍ճͷjobʹө͞Εͳ͍ return false; } } +PC1BSBNFUFSTHFU&YUSBT
εέδϡʔϧঢ়گΛίʔυͰ֬ೝ͢Δ +PC4DIFEVMFSHFU"MM1FEJOH+PCT εέδϡʔϧ͞Ε͍ͯΔKPC*OGPϦετ͕ड͚औΕΔ εέδϡʔϧͨ͠ࡍʹͨ͠*%Λൺֱ͢Δ public static
boolean isPending(Context context, int serviceId) { JobScheduler scheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); List<JobInfo> pendingJobList = scheduler.getAllPendingJobs(); for (JobInfo jobInfo : pendingJobList) { if (serviceId == jobInfo.getId()) { return true; } } return false; }
BECίϚϯυͰ+PC4DIFEVMFSͷঢ়ଶΛ֬ೝ͢Δ δϣϒεέδϡʔϥʔʹొ͞ΕͯΔλεΫҰཡ ࣮ߦͪͷλεΫҰཡ ࣮ߦ͞ΕͨλεΫͷώετϦʔҰཡ 04όʔδϣϯʹΑͬͯද͕ࣔҧ͏
adb shell dumpsys jobscheduler
EVNQTZTKPCTDIFEVMFS 04ͷ߹ Settings: <ͷઃఆ> Started users: [0] Registered 48
jobs: JOB #1000/800 : com.android.server.pm.BackgroundDexOptService <JobInfoʹͨ͠εέδϡʔϧ݅> JOB #1000/20536: com.android.server.backup.FullBackupJob <JobInfoʹͨ͠εέδϡʔϧ݅> [த൫লུ] Job history: -5m54s389ms STOP: u0a69 com.example.BackgroundService -5m51s543ms STOP: u0a83 com.example.AuthService -21s184ms START: u0a15 com.example.ServiceName -20s940ms STOP: u0a15 com.example.ServiceName
+PC4DIFEVMFS ྑ͍" 04ඪ४ͳͷͰ৴པߴ͍ ࡉ͔͍εέδϡʔϧ͕݅ࢦఆͰ͖Δ ࠶ىಈͯ͠ӬଓԽ͞ΕΔΈ͕͋Δ
ϚϧνϢʔβʔʹରԠ ϖϯσΟϯάதͷ+PCҰཡ͕औಘͰ͖Δ ࠷ߴ
+PC4DIFEVMFS ඍົͳ! ཁٻ͞ΕΔ"QJϨϕϧ Ҏ্ ͕ߴ͍ ϓϩμΫγϣϯͰͷར༻࣮͕গͳ͍
ଟগͷ᠘͕͋Δ ޙड़
+PC4DIEVMFS։ൃͰ ؾΛ͚͍ͭͨ᠘ͷ
ҙਤͤͣεέδϡʔϧ͕ফ͍͑ͯΔ ݱ ઃఆͨ͠εέδϡʔϧ͕ಥવফ͍͑ͯΔ ࠶ݱ݅ ܥͷͰΞϓϦΛߋ৽͢ΔͱϦηοτ͞ΕΔ
ରԠࡦ ύοέʔδͷߋ৽Λݕͯ͠࠶ઃఆ͢Δ
ύοέʔδߋ৽ΠϕϯτΛϋϯυϦϯά͢Δ <receiver android:name=".receiver.PackageReplacedBroadcastReceiver"> <intent-filter> <action android:name="android.intent.action.MY_PACKAGE_REPLACED" /> </intent-filter> </receiver> @Override
public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); String action = intent.getAction(); if (Intent.ACTION_MY_PACKAGE_REPLACED.equals(action)) { // εέδϡʔϧ͞Ε͍ͯΔ͔֬ೝ͢Δɻ } }
͗͢Δ%FBE-JOF ݱ %FBE-JOFͷ੍͕ҙਤ௨Γಈ͔ͳ͍ ࠶ݱ݅ %FBE-JOFʹͱ͍ͯ࣌ؒΛઃఆ͢Δ T͘Β͍
Ұ෦ͷͰKPCͷىಈʹ͔͔Δ ରࡦ +PC4DIFEVMFSΛଈ࣌ੑΛٻΊ͍͚ͯͬͯͳ͍#
Ұ͖Γͷδϣϒ͕ճىಈ͢Δ ݱ Ұ͖Γͷεέδϡʔϧͷ͕ͣෳճىಈ͢Δ ࠶ݱ݅ /ະຬͷશͯͷ
+PCͷ࣮ߦ࣌ؒΑΓ%FBEMJOF͕͍ͱෳճىಈ͢Δ ରԠࡦ %FBEMJOFΛ৳͢ɺνΣοΫػߏΛ༻ҙ͢Δ IUUQTUBDLPWFSGMPXDPNRVFTUJPOTKPCTDIFEVMFSQPTUJOHKPCTUXJDFOPUFYQFDUFE
աʹαʔϏεΛىಈ͢Δ ݱ Ұ෦ͷͰఆͷेഒͷδϣϒىಈ͢Δ ࠶ݱ݅ ෆ໌ 04
ػछͳͲʹภΓ͕ͳ͍ ରԠࡦ νΣοΫػߏ༻ҙ͢ΔPS͖ͳ࣮Λҙࣝ͢Δ
ΠέͯΔΈ͕ཉ͍͕͠ɺ ະຬʹରԠ͍ͨ͠ (DN/FUXPSL.BOBHFS
(DN/FUXPSL.BOBHFS (PPHMF1MBZTFSWJDFTͰՃ͞Εͨ +PC4DIFEVMFSʹඇৗʹΑ͘ࣅͨεέδϡʔϥʔ ࣮͕ผBQL ։ൃऀαʔϏε ʹ͋ΔͨΊɺδϣϒͷొ ΩϟϯηϧJOUFOUΛ௨্ͯ͡ख͍ͬͯ͘Δ
IUUQTBOESPJEEFWFMPQFSTHPPHMFCMPHDPNBDMPTFSMPPLBUHPPHMFQMBZTFSWJDFTIUNM
($./FUXPSL.BOBHFSαϯϓϧ αʔϏεଆ public class MyTaskService extends GcmTaskService { @Override public
void onInitializeTasks() { // ΞϓϦ͕আ͞ΕͨΓɺߋ৽͞Εͨ߹εέδϡʔϧ͕আ͞ΕΔͷͰɺ // ͜͜ʹ࠶εέδϡʔϧ͢ΔίʔυΛॻ͘(ॳճݺΕͳ͍) } @Override public int onRunTask(TaskParams taskParams) { // ͜͜ʹॲཧΛهड़͢Δ(ϫʔΧʔεϨου) return GcmNetworkManager.RESULT_SUCCESS; } } <service android:name=".MyTaskService" android:exported="true" android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"> <intent-filter> <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" /> </intent-filter> </service>
($./FUXPSL.BOBHFSαϯϓϧ εέδϡʔϧ public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) { // do something.. GcmNetworkManager gcmNetworkManager = GcmNetworkManager.getInstance(this); OneoffTask task = new OneoffTask.Builder() .setService(MyTaskService.class) .setTag(TASK_TAG) .setExecutionWindow(0L, 3600L) .setPersisted(true) .build(); gcmNetworkManager.schedule(task); } } 0OFPGG5BTL 1FSJPEJD5BTLͷ#VJMEFSΛͬͯ5BTLΛ࡞͠ɺ (DN/FUXPSL.BOBHFSʹεέδϡʔϧ͢Δ
($./FUXPSL.BOBHFS ྑ͍" (PPHMF1MBZTFSWJDFT ͔Βར༻Ͱ͖Δ ࠶ىಈͯ͠εέδϡʔϧ͕อ࣋͞ΕΔ ࡉ͔͍εέδϡʔϧ͕݅ࢦఆͰ͖Δ
-PMMJQPQҎ߱Ͱ+PC4DIFEVMFSΛར༻͢Δ Β͍͠
($./FUXPSL.BOBHFS ඍົͳ! ؔੑͷബ͍QMBZTFSWJDFTHDN͕ґଘʹඞཁ QMBZTFSWJDFT͕ೖ͍ͬͯͳ͍Ͱར༻Ͱ͖ͳ͍ ຊࠃࢢͰͦ͜·Ͱؾʹ͢Δඞཁແͦ͞͏
কདྷੑ͕Α͘Θ͔Βͳ͍
($./FUXPSL.BOBHFSͷ ସϥΠϒϥϦ 'JSFCBTF+PC%JTQBUDIFS
'JSFCBTF+PC%JTQBUDIFS GJSFCBTFGJSFCBTFKPCEJTQBUDIFSBOESPJE (PPHMF*0ͷলిྗলϝϞϦԽͷηογϣϯͰ +PC4DIFEVMFSͱڞʹհ͞Εͨ ($./FUXPSL.BOBHFSͷସͱͯ͠ར༻Ͱ͖Δ
'JSFCBTF+PC%JTQBUDIFSαϯϓϧ αʔϏεଆ public class MyJobService extends JobService { @Override
public boolean onStartJob(JobParameters job) { Log.d("MyJobService", "onStartJob"); return false; } @Override public boolean onStopJob(JobParameters job) { return false; } } <service android:name=".MyJobService" android:exported="false"> <intent-filter> <action android:name="com.firebase.jobdispatcher.ACTION_EXECUTE" /> </intent-filter> </service>
͂ 'JSFCBTF+PC%JTQBUDIFSαϯϓϧ εέδϡʔϧ public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this)); Job myJob = dispatcher.newJobBuilder() .addConstraint(Constraint.ON_ANY_NETWORK) .setService(MyJobService.class) .setTag("my-unique-tag") .setLifetime(Lifetime.FOREVER) .build(); dispatcher.mustSchedule(myJob); } } 'JSFCBTF+PC%JTQBUDIFSOFX+PC#VJMEFSͰɺ+PCΛ࡞͠ NVTU4DIFEVMFPSTDIFEVMFͰεέδϡʔϧ͢Δ
'JSFCBTF+PC%JTQBUDIFS ྑ͍" 04Ҏ্ͷͰར༻Մೳ ࠶ىಈͯ͠εέδϡʔϧ͕อ࣋͞ΕΔ ࡉ͔͍εέδϡʔϧ͕݅ࢦఆͰ͖Δ
044Ͱެ։͞Ε͍ͯͯɺίʔυ͕ಡΊΔ
'JSFCBTF+PC%JTQBUDIFS ඍົͳ! ϝϯςφϯεੑ͕ͪΐͬͱո͍͠ JTTVF͕์ஔ͞Ε͕ͪ ͬͱ࠷ۙNBWFOϨϙδτϦʹެ։͞Εͨ
࣮࣭1MBZ4FSWJDFT͕ඞਢͳঢ়ଶ ޙड़ ίʔυಡΊΔ͕શ༰ΛѲͰ͖ΔΘ͚Ͱͳ͍
+PC%JTQBUDIFSͱ /FUXPSL.BOBHFS ͲͪΒΛ͏͖͔
($./FUXPSL.BOBHFSͷߏ ΞϓϦଆ QMBZTFSWJDFT DPNHPPHMFBOESPJEHNTHDN"$5*0/@5"4,@3&"%: JOUFOUGJMUFSΛ௨ͯ͡ݺͼग़͢ +PCͷىಈ݅Λ*OUFOUʹ٧ΊͯૹΔ
'JSFCBTF+PC%JTQBUDIFSͷߏ ΞϓϦଆ JOUFOUGJMUFSΛ௨ͯ͡ݺͼग़͢ +PCͷىಈ݅Λ%SJWFSʹ͑Δ DPNGJSFCBTFKPCEJTQBUDIFS"$5*0/@&9&$65& %SJWFS
(PPHMF1MBZ%SJWFSͷߏ ΞϓϦଆ (PPHMF1MBZ%SJWFS QMBZTFSWJDFT
(PPHMF1MBZ%SJWFSͷߏ QMBZTFSWJDFT JOUFOUGJMUFSΛ௨ͯ͡ݺͼग़͢ +PCͷىಈ݅Λ*OUFOUʹ٧ΊͯૹΔ (PPHMF1MBZ%SJWFS DPNHPPHMFBOESPJEHNTHDN"$5*0/@5"4,@3&"%:
'JSFCBTF+PC%JTQBUDIFSͷॴײ %SJWFSͱ͍͏நߏ͕͋ΓɺόοΫΤϯυͷΈ ҙͷͷʹஔ͖͑Δ͜ͱ͕Մೳ" ݱࡏ Ͱɺ(PPMF1MBZ%SJWFSͷΈΛఏڙ "MBSN.BOBHFSɺ+PC4DIFEVMFSϕʔεͷόοΫΤϯυ
Λ࣮͢Δܭը͋ΔΒ͍͠ IUUQTHJUIVCDPNGJSFCBTFGJSFCBTFKPCEJTQBUDIFSBOESPJEJTTVFT
($./FUXPSL.BOBHFSΛ͏ͷ͕͓͢͢Ί ެࣜυΩϡϝϯτͰ͍όʔδϣϯͷαϙʔτ͕ ඞཁͳ߹ɺ(DN/FUXPSL.BOBHFS͕ਪ͞Ε͍ͯΔ ࣌Ͱ໎͍ͬͯΔͳΒ IUUQTEFWFMPQFSBOESPJEDPNUPQJDQFSGPSNBODFCBDLHSPVOEPQUJNJ[BUJPOIUNM
͜ͷηογϣϯͷ·ͱΊ "MBSN.BOBHFS Ћ ࣌ؒʹݫີͳεέδϡʔϦϯά͕͍ͨ͠ +PC4DIFEVMFS όοςϦʔύϑΥʔϚϯεΛҙ͍ࣝͨ͠
ଟগΕͯͳ͍όονॲཧ ($.OFUXPSL.BOBHFS 04ҎԼαϙʔτ͍ͨ͠ 1MBZ4FSWJDFT͕ೖ͍ͬͯΔ͚ͩαϙʔτͰ͖ΕΑ͍
ͦͷଞͷબࢶ &WFSOPUFBOESPJEKPC 4ZOD"EBQUFS
&WFSOPUFBOESPJEKPCͱ͍͏બࢶ &WFSOPUF͕ͯ͢ͷҋΛٵऩͯ͠࡞ͬͯ͘Εͨ࠷ڧͷδϣϒ εέδϡʔϥʔ$ 04Ҏ্Ͱར༻Մೳ "MBSN.BOBHFS ($./FUXPSL.BOHFS +PC4DIFEVMFSΛ
όοΫΤϯυͱͯ͠ར༻͍ͯ͠Δ ϥΠϒϥϦଆ͕࠷దͳόοΫΤϯυΛબ͢ΔͷͰ։ൃऀ͕ Կ͕ΘΕΔ͔ҙࣝ͢Δඞཁ͕ͳ͍ IUUQTCMPHFWFSOPUFDPNUFDIVOJGJFEKPCMJCSBSZBOESPJE
ͦͷଞࢀߟʹ͍͍ͤͯͨͩͨ͞هࣄ 4DIFEVMJOH3FQFBUJOH"MBSNT EFWFMPQFSBOESPJEDPNUSBJOJOHTDIFEVMJOHBMBSNTIUNM 4DIFEVMJOHKPCTMJLFBQSPXJUI+PC4DIFEVMFS NFEJVNDPNHPPHMFEFWFMPQFSTFG
4BNQMFT+PC4DIFEVMFS EFWFMPQFSBOESPJEDPNTBNQMFT+PC4DIFEVMFSJOEFYIUNM *NQMFNFOUJOH($./FUXPSL.BOBHFSPO"OESPJE EFWFMPQFSTHPPHMFDPNDMPVENFTTBHJOHOFUXPSLNBOBHFS
͋Γ͕ͱ͏͍͟͝·ͨ͠
None