#안드로이드

라이너라이너· 2년

남는 안드로이드 폰에 블로그 올리기

요즘 개발자라면 남는 안드로이드폰 한대씩은 있지 않나요? 안드로이드폰에 블로그를 올리는 방법을 설명한 글이 있어 소개합니다. https://androidblog.a.pinggy.io/ 위 링크의 글도 안드로이드 폰에 올린 글이라고 합니다. 설치방법 요약 올리는 방법을 간단히 요약하자면, 일단 안드로이드 터미널 에뮬레이터인 Termux을 사용했고, 공개 URL 주소를 얻기 위해 Pinggy라는 서비스를 사용했네요. 단계별로 살펴보면 이렇습니다. 1단계: Termux 설치 Termux는 터미널과 리눅스 환경을 에뮬레이션하는 안드로이드 앱이고 루팅이 필요없습니다. F-Droid 링크를 통해 얻거나, Github에서 APK를 직접 다운로드하여 설치할 수 있습니다. 2단계: 패키지 설치 터미널로 접속해서 웹페이지를 제공하기 위해 웹 서버를 기기에 설치해야합니다. 웹서버로는 node.js를 설치하고, ssh 접속이 가능하게 하기위해 openssh도 설치합니다. pkg update pkg upgrade pkg install openssh pkg install nodejs-lts 3단계: 서버 시작과 Pinggy 터널링 index.html과 같은 HTML 블로그 페이지를 생성한 다음, http-server를 시작합니다. npx http-server & 그런 다음 Pinggy에 가입하여 공개 URL을 얻습니다. 준비가 되면 다음과 같이 ssh 터널링을 통해 https://myandroidblog.a.pinggy.io 처럼 https로 시작하는 주소로 서버를 띄울 수 있습니다. ssh -p 443 -R0:localhost:8080 <pinggy토큰값>@a.pinggy.io
417
1
1
0
sonaki84
sonaki84·2023-05-23
오.. Pinggy라..
cosmicDustcosmicDust· 3년

질문Firebase 데이터베이스에 관련된 모든 작업이 작동하지 않습니다.

안녕하세요. 백엔드 쪽은 공부해본적이 없어서 파이어베이스를 이용해 어플리케이션을 만들어 보는 중입니다.   Auth 부분까지 잘 작동하는 것을 확인한 뒤, 공식 Documentation을 따라 실시간데이터베이스를 연결하고 코드를 짜봤는데요, 오류는 전혀 발생하지 않지만 데이터베이스에 제가 의도했던 어떠한 작업도 진행되지 않았습니다. 실시간데이터베이스 뿐만 아니라 파이어스토어도 마찬가지였습니다.   제 코드가 잘못된건가 싶어 Documentation에 있는 코드를 그대로 넣어봤으나 이 또한 작동하지 않았고 커넥트 및 디펜던스도 여러번 확인했습니다.   도대체 무엇이 문제일까요...? 아래는 파이어스토어 documentation에 있는 코드를 그대로 가져와 작성했던 코드입니다. class MainActivity : AppCompatActivity() { //파이어베이스 파이어스토어 초기화 val db = Firebase.firestore val user = hashMapOf( "first" to "Ada", "last" to "Lovelace", "born" to 1815 ) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) } }  
1.3K
1
1
0
무린
무린·2022-06-11
먼저 로그 콘솔에 에러가 출력된 것이 있는지 확인을 해보시기 바랍니다. 공식 문서대로 실행했는데 에러가 없다면 일일이 로그를 추가하여 확인해보셔야 할 것 같습니다. class MainActivity : AppCompatActivity() { val db = Firebase.firestore val user = hash...
yj23124yj23124· 3년

질문안드로이드 에뮬레이터에 따라 오류가 발생합니다

상대적으로 예전 버전인 Nexus 5X API 27로 할 때는 viewpager의 imageView가 잘 나오는데, Pixel 4 API 31 버전 애뮬레이터로 실행했을 땐 다른 건 잘 나오는데 viewpager의 imageView가 안나옵니다.. 아래의 내용은 Logcat에서 Error인 부분을 구글링해봐도 무슨 말인지 모르겠습니다ㅠㅠ 혹시 짐작 가시는 부분이 있을까요??   2022-04-13 13:55:24.260 409-409/? E/BpTransactionCompletedListener: Failed to transact (-32) 2022-04-13 13:55:25.404 448-466/? E/installd: Couldn't opendir /data/app/vmdl467636503.tmp: No such file or directory 2022-04-13 13:55:25.404 448-466/? E/installd: Failed to delete /data/app/vmdl467636503.tmp: No such file or directory 2022-04-13 13:55:25.985 1361-1361/? E/HwDetectorWithState: a: 3 2022-04-13 13:55:26.003 571-625/? E/VerityUtils: Failed to measure fs-verity, errno 1: /data/app/~~YZS7Rea2DoNg_giQyyGNkg==/com.instagram-oNZdfjGSAub8V764Q231DA==/base.apk 2022-04-13 13:55:26.141 571-625/? E/VerityUtils: Failed to measure fs-verity, errno 1: /data/app/~~YZS7Rea2DoNg_giQyyGNkg==/com.instagram-oNZdfjGSAub8V764Q231DA==/base.apk 2022-04-13 13:55:27.801 409-431/? E/HWComposer: getSupportedContentTypes: getSupportedContentTypes failed for display 4619827259835644672: Unsupported (8) 2022-04-13 13:56:47.808 357-357/? E/[email protected]: Failed to getEnergyData 2022-04-13 13:57:13.010 918-918/? E/MmTelFeatureConn [0]: ImsRegistrationCallbackAdapter: ImsRegistration is null  
5.3K
2
1
0
무린
무린·2022-04-23
안드로이드 SDK 버전에 따라 이미지를 가져오는 방식이 다를 수 있습니다. 예를 들면 Bitmap 이미지의 경우 아래와 같이 구분이 필요합니다. fun Uri.getCapturedImage(context: Context): Bitmap? { if (Build.VERSION.SDK_INT >= Build.VERSION_CODE...
밈이밈이· 4년

질문파이어베이스에서 읽어오는 데이터 값이 저장이 되지 않습니다.

class LogInActivity : AppCompatActivity() { var userId = "" var pcType = "" var nickName = "" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_log_in) val db: DatabaseReference = Firebase.database.reference // 이미 로그인이 되어있는 경우 UserApiClient.instance.accessTokenInfo { tokenInfo, error -> if (error != null) { Log.e("Token", "토큰 정보 보기 실패") } else if (tokenInfo != null) { Log.d("Token", "토큰 정보 보기 성공") UserApiClient.instance.me { user, error -> if (error != null) { Log.e("TAG", "사용자 정보 요청 실패", error) } else if (user != null) { val id = user.id.toString() setId(id) db.child("users").child(id).child("type").get().addOnSuccessListener { val dbType = it.value.toString() Log.i("info t", dbType.toString()) setType(dbType) }.addOnFailureListener { Log.e("firebase", "Error getting data", it) } db.child("users").child(id).child("nickname").get().addOnSuccessListener { val nick = it.value.toString() Log.i("info nick", nick) nickName = nick }.addOnFailureListener { Log.e("firebase", "Error getting data", it) } /*************************/ private fun setId(id : String) { userId = id } private fun setType(t : String) { pcType = t } 데이터 저장에 필요 변수는 전역으로 설정해주었습니다. db.child("users").child(id.toString()).child("type").get().addOnSuccessListener { 이 부분의 중괄호 내에서 dbType 변수에 데이터가 잘 저장된 걸 확인했습니다. 또한 전역변수로 선언해놓은 pcType에도 저장이 되어있습니다. 하지만 위 코드의 중괄호를 나가게 되면 pcType 변수에 다시 null 값이 들어 가 있습니다.   nickName 처럼 set 메소드를 안 쓰고 직접 저장을 해도 똑같이 중괄호를 나가면 다시 null 값으로 돌아갑니다. 이와 마찬가지로 UserApiClient.instance.me에서 저장되는 id값도 중괄호를 벗어나면 null 값으로 됩니다.. 며칠 전만 해도 문제 없이 잘 저장되었던 걸로 알고 있었는데 갑자기 변수에 값이 저장이 안되니 막막합니다..   제가 코틀린을 잘못 이해하고 사용하고 있는 것인가요? 파이어베이스에서 가져온 데이터 값을 어떻게 해야 변수에 저장할 수 있는지 궁금합니다. 현재 가지고 있는 코틀린 책도 없어서 구글링으로만 코드 작성 중이라 모르는 게 많습니다 ㅠㅠ..
2.9K
3
0
knee
knee·2023-12-11
정말 감사합니다! 이 글 덕분에문제를 해결할 수 있었어요
무린
무린·2021-05-06
addOnSuccessListener는 비동기로 실행됩니다. 즉, 언제 실행이 완료될 지 알 수 없는 코드입니다. 만약 중괄호 밖의 코드를 실행되기 전에 다행히 비동기 코드가 실행되었다면 정상적으로 동작하겠지만, 중괄호 밖의 코드가 실행될 때 아직 비동기 코드가 실행되어있지 않으면 값을 가져오지 못해 오류가 발생할 수 있습니다. 다시 말해,...
무린무린· 4년

안드로이드 12의 몇가지 주요 기능과 API

Features and APIs Overview  |  Android Developers Learn about the new features and APIs for developers in Android 12. developer.android.com 이번 안드로이드 12 버전의 몇가지 주요 기능과 API입니다.   콘텐츠 수신용 통합 API 클립보드, 키보드, 드래그 앤 드롭 등에서 리치 콘텐츠를 수신할 수 있는 API를 제공합니다.   미디어 트랜스코딩 강화 HEVC(H.265), HDR, AVC(H.264)에 대한 트랜스코딩과 호환성이 강화됩니다.   AVIF 이미지 포맷 지원   오디오에서 햅틱 효과 생성 게임같은 것을 할 때 오디오와 동시에 햅틱 효과를 줄 수 있게 합니다. 나름 재미있을 것 같네요.   애니메이션 GIF 및 애니메이션 WebP에 대한 Native 이미지 디코더 지원 안드로이드 네이티브 자체적으로 애니메이션 이미지에 대한 디코더를 지원하네요.   그 밖에  - 안드로이드 엔터프라이즈에서 기기 정책 콘트롤러 개선  - Wi-Fi Aware 향상           
1.5K
1
0
플몽플몽· 6년

개발한 앱 무료로 검수할 수 있는 QA룸 이용 정보공유

디바이스 검수/테스트룸   개발한 앱 테스트를 위해 다양한 디바이스 구비가 어려웠던 기업/스타트업을 위한 테스트룸을 프리모아가 업계 최초 무료로 운영하고 있습니다.   * 이용시간 : 월~금 10:00~19:00 (공휴일제외), 2시간 단위로 이용 * 이용인원 : 최대 수용인원 3인 * 이용요금 : 무료 예약하기 1. 프리모아 홈페이지 내 예약신청 시스템이나 전화, 카카오톡 플러스친구를 통해서 예약가능 2. 프리모아와 이용시간, 일정확인 3. 이용 당일 신분증 지참 후 방문 사용하기 1. 예약시간에 방문 후 신분증 제시 2. 비치된 디바이스 자유롭게 이용 (유의사항 확인) 3. 설치한 소프트웨어 프로그램은 이용 후 디바이스에 삭제 ※ 신청링크 : https://www.freemoa.net/mn/s03   
1.5K
0
그냥남자그냥남자· 6년

질문[Android ] 안드로이드 디버깅 및 테스트 질문입니다.

안녕하세요. 안드로이드 공부 중인 학생입니다. 안드로이드 스튜디오를 쓰고 있는데요. 공부 시작한 지 두 달인데 시행착오가 많습니다. 에뮬레이터는 너무 느리고 에러도 많이 나서 지워 버렸습니다. 안드로이드 개발할 때 테스트나 디버깅은 어떻게 하시나요? 저는 apk빌드해서 제 폰에서 돌려보고, 콘솔로 출력이 안되서 textview에 라인 번호를 출력해서 어떻게 돌았는지 확인하고 있습니다. 노하우를 가르쳐주세요!!
1.7K
1
0
kimho
kimho·2019-05-10
1. 에뮬레이터가 너무 느리면 기기를 연결해서 디버깅할 수 있습니다. 2. 출력은 TextView에 할 필요 없이 아래와 같이 Log 함수를 이용해서 출력할 수 있습니다.  public static final String LOG_TAG = "MY_APP_LOG"; ... Log.v(LOG_TAG, "This is verbose log")...
무린무린· 7년

안드로이드 Anko, Kotlin으로 살펴보기

안드로이드 Anko, Kotlin으로 살펴보기 안드로이드 Anko에 대해서 살펴보고 Anko가 Kotlin으로 어떻게 동작하는지 살펴봅니다. academy.realm.io 안드로이드 Anko에 대해서 살펴보고 Anko가 Kotlin으로 어떻게 동작하는지 살펴봅니다...
1.5K
0