일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 정성하
- FFI
- 엑티브엑스
- 윈도우7
- 재귀함수
- QTcpServer
- Qt OpenGL
- c언어
- vuejs
- 이륜차
- 자료구조
- 양평역
- QT
- 안드로이드
- 잡담
- 디자이어HD
- 자바
- 바이크
- android SAF
- 마영전
- 스타크래프트2
- 스타2
- Qt 소켓프로그래밍
- 알람프로그램
- Qt4
- Java
- 오토바이
- 고속도로
- HTML
- qt 설치
- Today
- Total
목록안드로이드 (10)
프로그래밍과 잡담
망할 구글이 앱 폴더가 아닌 외부 폴더에 접근 할려면 Storage Access Framework 를 강제 하고 있다. 그러니 그거 쓸려면 DocumentFile 이란 걸 사용해야하는데 문제는 특히 파일 목록을 가져오는 기능이 느리다는거다. MediaStore를 쓰면 속도가 좀 더 빠를려나 근데 난 MediaStore를 쓸데가 없으니 문제지.. 폴더 내의 파일이 대충 100개도 안되지만, 그냥 가지고 오는건 어찌어찌 가지고 오는데, 이걸 가지고 정렬까지 하면 졸라게 느려진다. 근데 문제는 이걸 더 개선하려고 해도 내부로직이라 그럴 방법 없다는거지. 소스까봐도 이상한 DocumentProvider 같은거 가지고 지지 복는데 봐도 잘 모르겠으니.. 다른 방법은 데이터베이스에 넣어서 처리하던가 아니면 파일로 ..
안드로이드가 21년 11월부터는 TARGET API를 30 이상으로 강제한다 고 한다. Play Console에 들어가서 메시지함에 들어가면 나오는건데 이게 무슨 소리냐 하면 11월 부터는 저장소에 직접 접근이 불가능하다는 소리지. 그 전에 Storage Access Framework 나 아니면 MediaStore 방식으로 바꾸라는거지. 무조건 그 개떡같은 방식을 쓰라는거지. 개같은 구글 아예 처음부터 이렇게 하던가 하지. 왜 갑자기 저 지랄이야. 관련 정보 : https://android-developers.googleblog.com/2020/11/new-android-app-bundle-and-target-api.html
초창기의 개방형 OS가 아닌 점점 애플 iOS 처럼 폐쇄적으로 가는거 같다. 왜 그러냐 하면은 점점 저장소에 대해서 iOS 처럼 바뀌고 있다. 최근 타겟 버전을 29버전 이상으로 강제하고 있다. 이 버전부터는 앱이 내부 폴더 이외의 장소에는 접근을 할 수 없게 된다. 즉, 안드로이드 앱의 앱 내부 저장소는 /data/data/앱이름 으로 되어 있는데 이 아래의 정보만 접근이 가능하다. 그외에 공용 폴더는 접근이 가능하다. 그림, 동영상 이딴거 말이야. 예전에는 폰의 내부저장소(/sdcard), 외부저장소( /storage/123-123) 에 바로 접근을 할 수 있다. 근데 지금은 접근을 할려면 Storage Access Framework 를 써야한다. 그리고 안드로이드 11버전에선 저장소의 루트 폴더에 ..
안드로이드가 롤리팝으로 업데이트되면 킷켓에서 외장메모리에 쓰기 방법을 막았는데 다시 롤리팝에서 부활했다. 그것을 어떻게 하는가 하니 // 이것을 호출한다. Intent.ACTION_OPEN_DOCUMENT_TREE가 롤리팝에서 추가되었다. Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); startActivityForResult(intent, 42); 그리고 나면 창이 뜰 테고 사용자가 선택하면 그 결과가 아래의 메소드로 들어온다. //사용자가 선택하면 선택한 결과가 resultData로 들어온다. public void onActivityResult(int requestCode, int resultCode, Intent resultData) {..
간단하다. 안드로이드 3.0부터 엑션바를 이용한다. 3.0 이전에는 그냥 타이틀바만 있었다. 스크롤을 내리면 그에 대한 스크린샷이 있다. 하지만, 허니콤에 와서 부터는 엑션바는 메뉴를 처리하는데 UX측면에서 구글이 상당히 고심을 했다는걸로 보인다. 일단, 하드웨어 메뉴버튼을 이용하면 추가적인 메뉴가 있는지에 대해서 사용자가 알 수 없다.메뉴버튼을 일일이 눌러봐야 알 수 있기 때문이다. 하지만 메뉴버튼이 없을 경우에는 점3개로 생긴 오버플로우 메뉴가 생기게 된다. http://developer.android.com/guide/topics/ui/actionbar.html 이 페이지에 있는 그림을 가져왔다. 여기서 보면 3번이 오버플로우 메뉴이다. 2번은 일반 메뉴들이고 1번은 앱 아이콘 위는 엑션바와 차이를..
어떻게 골 때리냐 하면은 나는 모니터는 2개 쓴다. 근데 1번은 외장 gpu로 연결했고 두 번째는 내장에 연결했다. 이유는 외장 gpu가 이상해서 그런거고. 여하튼 이게 중요한게 아니고. 안드로이드 에뮬레이터 보면 gpu 에뮬레이션이라는게 있다. gpu로 에뮬레이터 그래픽 가속을 하는거지. 이걸 1번 모니터에서 실행하면 실행이 잘 되는데 2번 모니터에서 실행을 하면 앱 크래시가 발생한다. 이해 안돼면. 모니터 1번과 2번의 그래픽카드가 달라서 발생하는 에러인가보다. 1번 모니터에 안에서 에뮬레이터를 실행하면 잘돼고 1번 모니터가 아닌 2번 모니터에서 에뮬이 실행돼면 앱이 크래시가 일어난다는거. 1모니터 --> 실행 --> 1모니터에서 실행 OK1모니터 --> 실행 --> 2모니터 실행 fail 아 씨발 ..
루팅폰에서는 불가능한데.. 인터넷을 잘 뒤져보면 할수 있는 방법이 있다. 구글을 열심히 검색하면 나온다. 목 마른자가 우물을 파듯이 니가 알아서 검색해..
불법 복제가 만연하면서 개발자들이 안드로이드에 앱을 만들기는 꺼려하고 있지. 구글에서는 뭔가 방법을 취해야한다. 개발자들이 중요한 하드웨어쪽을 제어를 못하게 규제를 해야하고 스마트폰을 만들때 규격을 엄격하게 해서 앱이 모든 곳에서 제대로 실행 될 수 있게끔 해야한다. 개발자가 무슨 모든 폰을 다 사서 테스트를 할 수 는 없잖아. 제대로된 규격이 필요하다. 어플을 개발했으면 그 어플이 모든 안드로이드 스마트폰에서 실행 될 수 잇는 규격이 필요하다. 그리고 프로그래밍언어를 자바(Java)라는 언어를 사용한 것은 좋지 않은거 같다. 개발하는데 편하지만 문제는 그게 아니지 역컴파일을 해서 해킹하는게 너무 쉽다는것이다. 쉽다는게 다른 언어에 비해서 쉽다는거지, 무슨 소스코드가 다 나오는것은 아니다. 하지만 문제가..
인텐트를 이용해서 데이터를 주고 받는법 Intent intent = new Intent(this, TestClass.class); String var1="test" intent.putExtra("var1",var1); startActivityForResult(intent,1); 위와 같은 식으로 인텐트를 사용하면 불려진 클래스에서 저 var1을 받을 수 있다. 받는 방법은 .... String test = getIntent().getStringExtra("var1"); Log.i("test",test); .... 이런식으로 사용하면 된다. 엑티비티를 불른 클래스에서 불려진 클래스에서 값을 받을 려면 말이 좀 그런데 A를 원래 클래스 B를 불려진 클래스 라 하자. A에서 인텐트를 이용하여 B를 불렀다. B..
아이폰 OS와 안드로이드로 갈려나.. 현제 스마트폰 OS 1위는 노키아의 심비안이지만 뭔가 혁신적인 변화가 있어야 할 것 같다. 현제 심비안3가 나왔다는데.. 아이폰이나 안드로이드에 비해 성능이 어떨지 모르겠다.. 뭐 그래도 현제 1위 기업이고 어플을 개발하기가 열라 구렸다고 했었는데 최근에 트롤태크(Qt 라이브러리를 개발하는 회사)를 인수하고 심비안을 오픈소스화하고 여러가지로 방안을 구하는 듯 하다. 어쨌든 차후 미래로 간다면 아무래도 역시 안드로이드의 승리로 갈 가능성이 크다고 본다. 이유야 당연히 애플의 패쇄정책이지.. OS를 지네들이 개발하고 기기역시 자기네들이 만들어 판다. 뭐 구글과 애플의 경영 방식의 차이겠지만.. 애플은 과거 부터 이런식으로 해서 유행을 이 끌었으나 결국은 후발 주자에 밀렸..