anroid
polynomial3
这个作者很懒,什么都没留下…
展开
-
android 开发常用apk工具
application info:方便查看package信息Applications Info | F-Droid - Free and Open Source Android App Repositorycurrent activity:查看当前activity类名和包名https://apkpure.com/current-activity/com.willme.topactivity原创 2022-06-14 10:06:24 · 1003 阅读 · 0 评论 -
android sdk 常用命令
address2line$ addr2line -e out/obj/armeabi-v7a/libc.so 000494b1 -f原创 2022-06-14 10:03:40 · 239 阅读 · 0 评论 -
adb shell 命令合集(备忘,维护中,欢迎评论区提新)
adb installINSTALL_FAILED_TEST_ONLY在工程根目录 gradle.properties 文件中添加如下一行android.injected.testOnly=false获取frameworkcp -r /system/framework /sdcard/frameworkadb pull /sdcard/framework获取apk路径adb shell pm path com.xbb.providerdemopackage:/data/app/~~kiIwFP原创 2022-06-14 09:57:15 · 509 阅读 · 0 评论 -
ANDROID_SDK_HOME is set to the root of your SDK
升级 Android Studio 后,每次启动都会在右下角提示```Error: ANDROID_SDK_HOME is set to the root of your SDK...```同时伴随模拟器无法启动然而在 控制面板\所有控制面板项\系统->环境变量 界面,并没有发现配置 ANDROID_SDK_HOME 环境变量通过执行```echo %ANDROID_SDK_HOME%```发现确实存在这个环境变量通过 控制面板\所有控制面板项\系统-&原创 2022-04-03 20:53:49 · 4370 阅读 · 0 评论 -
android Messenger 用法,demo,helloworld
如果你觉得写aidl比较麻烦,android还简单封装了一个 Messenger api,可以进行简单的跨进程通信,不过我干android这么多年,从来没有见过有哪个项目用过这玩意儿,因为太麻烦,还不如直接用aidl简单感觉,如果你是初学者,早点弃坑1。声明并实现一个service <service android:name=".MsgrIpcService" android:process=":msgr"> </serv原创 2022-04-03 20:01:00 · 2189 阅读 · 0 评论 -
aidl 在异步线程 bindService
Android的 IPC api 有很多,但是很多都是一过性的,并不会保存连接状态,比如 provider 的 call 方法就是一种非常直接的方法,但是被call的进程也容易挂掉。bindService 是一种可以保证连接的跨进程通信机制,在Android系统设计中,它对后台进程具有很强的保活效应(假设前台进程bind了它),但是美中不足的是,调用方式就有些麻烦了。因为不管客户端啥时候调用都要提前预留时间进行bind,而等待时间又不确定,此时我们有几种处理方法1. 让调用线程等待,当bind成功后再放原创 2022-04-03 16:07:59 · 2455 阅读 · 0 评论 -
android emulator 命令的一些问题
在 ubuntu 20 系统中android emulator 命令的位置在 $ANDROID_SDK_HOME/emulator 目录下android studio 创建的 avd 存放在 ~/.android/avd 目录下如果已经在Android Studio 中创建了avd,但是执行 ./emulator -list-avds 如果找不到任何 avd,可以将配置一下,在 ~/.bashrc 中添加一行export ANDROID_AVD_HOME="/home/sunzy原创 2022-03-04 09:39:02 · 6374 阅读 · 5 评论 -
Fragment onCreateView 中 View inflate 方式
老铁们,之前在开发过程中我遇到一个困惑,是关于 Fragment.onCreateView 中怎样 inflate 一个 View 的问题,但是后来忘记了,最近又遇到了这个问题,备忘一下,有遇到同样问题的小伙伴们可以做一个参考在某些场合比如 Fragment.onCreateView 中需要返回一个 View,那我们就从 xml 中 inflate 一个吧,inflate 方法需要两个参数,那就给吧 override fun onCreateView(inflater: LayoutInfl原创 2022-02-14 12:05:04 · 1341 阅读 · 0 评论 -
Cursor Stream 等 Closable 的关闭 Java 和 kotlin 实践
老铁们,Cursor 用完要 close 大家都知道,怎样优雅地关闭有一点学问。1 java中一种古老的做法 public String query1(Context context) { Cursor cursor = null; try { cursor = context.getContentResolver().query(MediaStore.Images.Media.getContentUri("internal"),原创 2022-02-13 13:13:48 · 1624 阅读 · 0 评论 -
Android console 的一种简单实现
老铁们好,最近要公司测试人员做一个测试工具,需要实现一个 console 来展示测试结果,简单实现了一下,备忘一下,以后有类似需求直接此处拿代码其实现要点是1 layout xml使用一个 ScrollView 的目的是让这个 console 能滚动,否则容纳不了多少内容,其实 TextView 自己也能实现滚动,不过据我观察,效果不咋地 <ScrollView android:id="@+id/mpt_console_container"原创 2022-02-13 11:43:21 · 2327 阅读 · 0 评论 -
android.net.Uri 研究
我们都知道 ContentUri 有一个 appendWithId 方法,那么 Uri 怎样去掉 id 呢,我研究了一下,发现没有办法,因为 id 也算是 segment 的一部分,segment 整个算是一个字符串,啊,我浪费掉的时间老铁們有没有想法呢,除了直接编辑字符串?欢迎留言/*2022-02-11 10:38:20.728 12005-12005/com.kiyuni.uridemo V/sunzy: uri = content://com.android.providers.medi.原创 2022-02-11 10:48:06 · 577 阅读 · 0 评论 -
1. 概述
最近在做一个SDK开发和维护方面的工作,涉及到的修改,必须对影响到的接口进行严格测试,如果不测,虎了吧唧交给测试,有可能你把很基础的调用都改坏了,自己还不知道,或者交付给用户很久了,发现一个接口实现有问题,这种就会很尴尬。确实有一个测试工具App,但是大家都在用,你也不好胡乱改,改动之后涉及的变动,只有我自己知道要怎么测,另外也不可能为每一个调用都写一个ui测试入口。于是乎想找一个自动化的测试方案,写好一些测试用例,相关模块改动之后,鼠标点点跑一遍,很安心,岂不爽哉。对于 Java 项目的单元测..原创 2022-02-07 11:21:59 · 383 阅读 · 0 评论