Android
Best
Geek
展开
-
ADB命令记录
adb shell am start 包名/.MainActivity。adb connect ip:5555 端口号带不带都行。adb devices 端口号带不带都行。原创 2023-06-02 10:47:28 · 297 阅读 · 0 评论 -
Android compose 一个简陋的登陆页面
class LoginActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { GoodNewsTheme { // A surface container using the 'background'原创 2023-04-26 09:58:24 · 439 阅读 · 1 评论 -
通过蓝牙芯片(HC-05)与手机 APP 通信
例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)原创 2023-03-08 16:04:34 · 1125 阅读 · 0 评论 -
Win10编译Android版本的FFmpeg库
下载地址:MSYS2安装完成后打开MSYS2执行如下命令, 安装所需要的工具链下载android NDK我在Android Studio里面已经下载过了,没有的可以自己百度去官网下载NDK我用的这个版本NDK切换至分支在ffmpeg的文件下找到configure,用编辑器打开替换成:找到替换成:保存文件,使用MSYS2 MINGW64进入到ffmpeg根目录下执行来跑一边配置文件需要自己替换对应目录我使用的api是23将完成的脚本保存为build_android.sh,放到源码目原创 2022-12-06 21:30:00 · 1079 阅读 · 0 评论 -
Android反编译apk
在jd-gui文件夹里打开 jd-gui.exe ,再找到 classes-dex2jar.jar 打开就可以看到代码了。把jar包、bat脚本、反编译的APK文件放在一个文件夹下,添加一下环境变量。获取资源文件,提取图片文件,布局文件,还有一些XML的资源文件。查看classes-dex2jar.jar中的代码。打开cmd,切换到你apktool文件夹下。将APK反编译成Java源码(,即可拿到资源布局文件。原创 2019-06-12 20:06:09 · 514 阅读 · 0 评论 -
virtualxposed 检测Android隐私合规问题
点击下面菜单按钮进入菜单页面,点击添加应用,把需要检测的APP和。下载压缩文件,解压获取apk安装在手机上。可以看到刚才添加的两个应用,一个是。可以按照自己需求自行修改代码。下载,需要运行到手机上。,一个是你自己的APP。......原创 2022-08-30 22:00:00 · 1976 阅读 · 3 评论 -
Android MediaPlayer播放MP3 字节流文件
private MediaPlayer mediaPlayer = null; public void PlayAudio(String base64EncodedString){ try{ String url = "data:audio/mp3;base64,"+base64EncodedString; if (mediaPlayer == null){ mediaPlayer = new Med..原创 2022-04-14 18:09:22 · 3063 阅读 · 0 评论 -
饺子播放器使用IJKPlayer播放MP4文件
JZVideo项目地址问题汇总视频设置禁止回退快进 MyJzvdStd.findViewById(R.id.bottom_seek_progress).setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return true;.原创 2022-03-30 22:45:00 · 1088 阅读 · 0 评论 -
gson解析列表对象
Gson gson = new Gson(); A a= gson.fromJson(jsons, new TypeToken<List<A>>() {}.getType());原创 2021-12-24 09:52:24 · 1079 阅读 · 1 评论 -
获取Android应用 Release MD5值
用apk直接查看把apk的格式改为压缩文件,进行解压进入获取META-INF文件夹下,找到CHSYTBKT.RSA文件打开cmd ,输入命令keytool -printcert -file CHSYTBKT.RSA通过签名文件获取找到签名文件所在的目录位置输入命令keytool -v -list -keystore 加上你签名文件目录路径...原创 2021-12-14 17:27:33 · 1675 阅读 · 0 评论 -
ADB命令
查询手机cpu命令行adb shell getprop ro.product.cpu.abi原创 2021-09-16 16:18:22 · 121 阅读 · 0 评论 -
android TextView文字换行内容末尾跟图标或其他View的实现
效果如下 import android.content.Context; import android.text.Layout; import android.text.StaticLayout; import android.text.TextPaint; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.Te.转载 2021-08-06 18:35:36 · 2142 阅读 · 1 评论 -
免费工具网站
MP4转GIFGIF压缩原创 2021-05-24 14:56:49 · 190 阅读 · 0 评论 -
Android 自定义Toast
/** * 修改toast显示到中间位置 * * @param message 需要展示的信息 */ public void showCenterToastCenter(String message) { LayoutInflater inflater = getLayoutInflater(); LinearLayout linear = (LinearLayout) inflater.inflate(R.layo...原创 2021-05-18 20:20:49 · 158 阅读 · 0 评论 -
Android 获得View截屏最优方案
Android 获得View截屏最优方案/** * 获得View的截屏 Bitmap * * @param view * @return */public static Bitmap getMagicDrawingCache(Context context,View view,boolean quick_cache) { Bitmap bitmap = (Bitmap) view.getTag(R.id.cacheBitmapKey); Boolean dirty = (Bo.转载 2021-05-13 11:26:36 · 542 阅读 · 0 评论 -
Android SurfaceView设置圆角
直接复制即可用 mSurfaceView.setOutlineProvider(new ViewOutlineProvider() { @Override public void getOutline(View view, Outline outline) { Rect rect = new Rect(); view.getGlobalVisibleRect(rect); .原创 2021-04-26 08:37:17 · 2750 阅读 · 1 评论 -
Android监听手机是否水平
需求需要坐一个类似作业帮拍照,判断用户是否把手机放平的功能。使用手机重力感应来实现Activity实现SensorEventListener方法 //注册感应器 SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETE原创 2021-04-21 22:27:22 · 1274 阅读 · 3 评论 -
解决Android Studio 右上角Gradle不显示task
问题记录下不正常的情况下正常的情况下解决方案依次点击:File -> Settings -> Experimental -> 取消勾选 “Do not build Gradle task list during Gradle sync”同步项目即可参考博客Android Studio 的 Gradle Task 没有显示的问题...原创 2021-01-29 17:47:37 · 15881 阅读 · 7 评论 -
Android 实现音视频分片上传
Android 音频分片上传视频分片上传音频分片上传 /** * 切割MP3方法 */ public void splitMp3() { File file1 = new File("/sdcard/" + i + ".mp3"); int size = 1024 * 1024; byte[] temp = new byte[size]; try { RandomAccessFile raf = n原创 2021-01-27 14:30:33 · 1751 阅读 · 5 评论 -
Android端调起企业微信提示【没有此权限】
申请企业微信所需要的四个Key值,签名密钥必须是 md5算法、不要冒号、小写。或者用官方提供的签名生成工具,根据包名生成。工具链接原创 2021-01-12 15:42:17 · 2722 阅读 · 1 评论 -
关于友盟分享SDK和支付宝支付SDK包冲突
报错信息Duplicate class com.ta.utdid2.device.e found in modules alipaySdk-15.6.5-20190718211148-runtime.jar (:alipaySdk-15.6.5-20190718211148:) and utdid4all-1.5.2-proguard.jar (utdid4all-1.5.2-proguard.jar)Duplicate class com.ut.device.AidCallback found in.原创 2021-01-11 14:09:15 · 938 阅读 · 2 评论 -
Google Play搜不到自己应用
app在Google上架成功已经一个月了,在google play一直搜索不到,刚开始客服说的原因是刚上架的问题,需要做搜索排名优化。直到今天依然搜索不到,再次询问客服,客服原话是:首先,有关于搜寻的问题,请注记,Google Play 搜索结果可能包含与应用标题、应用发布商、应用说明以及其他信息相符的结果。当品牌名称或标题恰巧是常见字词时,系统就很难对搜索结果进行适当的优化。如果您的应用在特定搜索字词的搜索结果中排名太低,您可以建议用户在搜索您应用的名称时加上英文引号(即,“应用名称”),这样我.原创 2020-12-21 16:14:44 · 14931 阅读 · 8 评论 -
SpannableStringBuilder实现用户隐私协议
效果图实现代码如下,有注释: String content = "请你务必审慎阅读、充分理解“服务协议和隐私政策”个条款,包括但不限于:为了向你提供内容等服务,我们需要收集你的设备信息、操作日志等个人信息。你可以在“设置”中查看、变更、删除个人信息并管理你的授权。你可以阅读《用户协议》和《用户隐私政策》了解详细信息。如你同意,请点击“同意”开始接受我们的服务"; SpannableStringBuilder spannableString = new SpannableStringBu原创 2020-12-08 11:42:28 · 901 阅读 · 1 评论 -
Android studio编译报错文件提前结束
文件提前结束。出现这种错误需要检查项目中是否有报错的地方,包括为引用到的地方。一般情况下你点Build --> Rebuild Project会提示出来报错的地方,解决完报错重新编译就好了。原创 2020-12-01 15:55:00 · 867 阅读 · 0 评论 -
解决X5内核版本兼容问题
项目周四晚上上线,到周六发现有人反馈程序闪退,赶紧给用户打电话问用户操作流程,结果用户说只要点列表页面(属于webview页面)直接就闪退了,上线前新老测试机和同事手机各种测试都没问题啊,这一上线咋能闪退啊,于是就让用户录了个屏,看了下是不最新版本,发现确实是用户说的。万分惆怅啊于是各种排查代码,发视代码没问题啊。实在没办法了,想起来了腾讯大佬原来说的方法了,决定让用户重新加载一下内核试试。debugtbs.qq.com一定要用手机打开,电脑端打不开。打开以后我让用户手动安装了一下线上内核,重启了一.原创 2020-11-17 10:46:02 · 4844 阅读 · 0 评论 -
Google Pay 应用已经发布成功,调起支付回调失败
问题描述应用在Google Play上架成功,许可测试等配置也都配置完成,但是调起支付的时候,从初始化–>查询商品信息–>调支付都没问题,就是到支付回调的时候ResponseCode返回6,(BillingClient.BillingResponseCode.ERROR),支付不成功。调不起来支付弹窗。解决办法需要在权限设置里面,把google play的**允许应用在后台弹窗界面**这个权限打开。...原创 2020-11-11 16:50:27 · 1205 阅读 · 0 评论 -
In-app billing API version 3 is not supported on this device
接入Google Pay报的错In-app billing API version 3 is not supported on this device解决办法:我这的问题是因为共用了一个账号的问题,都是用的google开发者账号导致的支付链路不通,打开google play付费页面不会显示应用,然后我重新申请了一个普通账号就可以了。还有其他问题可以自己对照排查:【原文博客链接】你需要拥有一个完整的Google Play账号,是可以登录的;你的Google Play中最好只有一个账原创 2020-11-11 09:41:49 · 1683 阅读 · 0 评论 -
解决国内手机安装Google Play打开闪退问题
手机下载酷安app,在酷安app中搜索go谷歌安装器,点击下载安装。安装完成打开会自动检测,点击go按钮自行安装即可。原创 2020-11-10 16:40:43 · 20553 阅读 · 2 评论 -
Android Studio项目目录初始化失败,项目乱码解决方案
国庆节过后第一天上班,AS就给我一个大惊喜,全部项目都乱码了,项目目录初始化也出问题了。直接报错:Cannot load settings from file解决方法如下:先关闭Android Studio,删除C:\Users\Administrator.AndroidStudio4.0\system 这个目录下的caches文件,(找到对应的这个目录下文件就好),再重新打开Android Studio,caches文件会重建,这时工程里的异常文件都恢复正常了,可以正常使用Android Stu.转载 2020-10-20 15:18:04 · 572 阅读 · 0 评论 -
腾讯X5内核实现长按弹出自定义菜单方法
我的需求是用户长按WebView,实现蓝色背景和水滴选择效果,并且只弹出我自定义的菜单。由于腾讯X5内核底层流程不是用actionmode实现的,所以自定义startActionMode or startActionModeForChild都是不会被执行的。所以要想实现自定义菜单,并且屏蔽掉内核自带的长按菜单还是很麻烦的。1. 根据官网尝试实现IX5WebViewClientExtension所有方法,并重写onShowLongClickPopupMenu方法让他返回True,设置给X5WebVi.原创 2020-10-20 10:07:27 · 2458 阅读 · 5 评论 -
解决部分Android手机播放MP4视频外音是杂音的问题,耳机播放正常
问题:用Android设备播放几段MP4文件,有的可以正常播放,有的播放的时候外音的声音有问题,但是带上耳机是正常的。IOS手机一切正常。原因: 对于有些视频,用手机的扬声器播放有杂音,但是用耳机播放正常,这样的现象很可能是因为立体声的音频,两个左右声道的音频数据波形不同步,互相干扰导致的,可以用FFmpeg的 一个filter处理一下,这样右声道和左声道的数据都保持一致了。解决办法:WIN10电脑配置FFmpeg环境。FFmpeg下载链接,默认下载第一个。下载完成把他解压一下。然后在电脑上配置一下F原创 2020-09-24 17:58:16 · 4663 阅读 · 5 评论 -
SpannableStringBuilder实现TextView部分文字变色、可点击
直接贴使用方法,直接搬走即可用: String content = "你的文本"; SpannableStringBuilder spannableString = new SpannableStringBuilder(content); //设置部分文字点击事件 ClickableSpan clickableSpan = new ClickableSpan() { @Override public void原创 2020-09-16 17:27:28 · 493 阅读 · 0 评论 -
Win10台式机 使用Genymotion注意事项
有的电脑CPU虚拟技术是关闭的,一定要打开电脑的CPU虚拟化技术。具体查看方法可以底部任务栏右键选择任务管理器—>点击性能查看。Genymotion 与电脑Hyper-V冲突,需要先关闭Hyper-V再启动Genymotion。...原创 2020-09-08 09:22:55 · 1877 阅读 · 0 评论 -
Android popupWindow距页面右边距显示
例如下图解决方案参考PopupWindow的showAsDropDown转载 2020-08-26 16:06:09 · 1989 阅读 · 0 评论 -
一道大厂的面试题
多线程,5个线程内部打印hello和word,hello在前要求提供一种方法使得5个线程先全部打印出hello后再打印5个word final CyclicBarrier num =new CyclicBarrier(5); for (int i =0; i <5; i++) { new Thread(new Runnable() { @Override public void run()原创 2020-08-14 18:03:12 · 143 阅读 · 0 评论 -
Android端获取视频第一帧的方法
/** * 给出url,获取视频的第一帧 * @param url * @return */ public static Bitmap getVideoThumbnail(String url) { Bitmap bitmap =null; //MediaMetadataRetriever 是android中定义好的一个类,提供了统一的接口,用于从输入的媒体文件中取得帧和元数据; MediaMet原创 2020-08-14 18:00:02 · 1241 阅读 · 0 评论 -
Android api28 tablayout改变
设置tablayout下划线的宽度 (TabLayout和28之前有差异,mTabStrip已经是slidingTabIndicator了,API 28下TabLayout的差异)两种实现方式 /** * 设置tablayout下划线的宽度 */ public static void reflex(final TabLayout tabLayout){ //了解源码得知 线的宽度是根据 tabView的宽度来设置的 tabLayout.po原创 2020-07-31 15:45:30 · 190 阅读 · 0 评论 -
Android 隐藏底部导航栏和状态栏,动态调用导航栏,键盘收回时也收回导航栏
private void hideNavigationBar() {Window window= getWindow(); WindowManager.LayoutParams params = window.getAttributes(); params.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE|View.SYSTEM_UI_FLAG_FULLS.原创 2020-07-31 15:33:14 · 615 阅读 · 0 评论 -
Android Studio下载各个版本方法
点击进入Google中文开发者官网点击导航栏上的Android Studio点击预览往下滑动当前页面,点击MORE DOWNLOADS进入下个页面,点击同意条款即可看到各个版本的AS原创 2020-07-30 16:07:13 · 1854 阅读 · 1 评论 -
Python结合Appium实现APP自动化测试
环境准备下载app开发所需要的IDE,配置开发所需要的环境安装Python需要的环境以及IDE安装Appium for windows,安装完成后,启动Appium,host和port默认的即可。然后设置Android SDk和Java JDK的路径。按下图操作然后点击保存并重新启动按钮即可。我的环境Android Studio3.5.2Java jdk1.8Python 3.7.2Python开发工具是pycharmAppium 1.17.1下载以及配置原创 2020-07-28 17:07:27 · 2641 阅读 · 2 评论