목록전체 글 (421)
외로운 Nova의 작업실
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/W0ZQ9/btr0oA2Qu6T/sg6GCdvkpRnkRepSoyzMKK/img.png)
- 잡 스케줄러 잡 스케줄러는 앱실행시 구동되는 백그라운드가 아닌 특정 상황에서 실행되는 백그라운드입니다. 예를들어 네트워크가 와이파이일때, 배터리가 충전상태일때등등에만 실행되게끔 만들 수 있는게 잡 스케줄러입니다. 또한 실행주기도 정할 수 있어 일정 주기마다 실행되게끔 할 수 있습니다. - 잡 스케줄러의 구성요소 잡 스케줄러의 구성요소는 아래와 같습니다. 잡 서비스 : 백그라운드는 어떻게 돌아가는지 설정합니다. 잡 인포 : 잡 스케줄러가 어떤 상황에서 돌아가는지 설정합니다. 잡 스케줄러 :시스템에 잡스케줄러를 등록합니다. - 잡 서비스 잡 서비스를 만드는 방법을 알아보겠습니다. 잡서비스는 개발자가 만드는 서비스이므로 매니페스트에 태그로 등록합니다. 또한 아래와 같이 퍼미션도 등록해줍니다. 그런다음 Jo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/D5UfI/btr0hqlHyUS/FLzm6glkLvHCgFfLWWoubk/img.png)
- 문제 인식 canary가 있고 NX(NoeXcute)가 활성화 되어있습니다. 32비트 우분투 16.04 os임을 알 수 있습니다. 문제 파일을 보겠습니다. #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30); } void get_shell() { system("/bin/sh"); } void print_box(unsigned char *box, int idx) { pr..
- 백그라운드 제약 액티비티를 제외한 나머지 컴포넌트는 화면을 구현하는 용도가 아니라 백그라운드에서 작업을 처리할 목적으로 사용합니다. 그런데 예전에는 앱을 실행해 화면이 출력된적이 없는 상황에서도 백그라운드에서 작업을 처리할 수있었지만 안드로이드 8버전부터는 제약을 받습니다. 따라서 브로드캐스트 리시버나 서비스를 이용할때는 백그라운드 제약에 관해 잘 정리해둬야합니다. - 리시버의 백그라운드 제약 브로드캐스트 리시버는 암시적 인텐트로 실행할 수 없습니다. 위처럼 매니페스트 파일에 등록하고 아래처럼 다른 클라이언트 앱에서 코드를 실행하면 리시버는 받지못합니다. val intent = Intent("ACTION_RECEIVER") sendBroadcast(intent) 암시적 인텐트는 registerRece..