![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
池存祥
点点滴滴,都是自我的积累
github.com/ccx1
展开
-
Injecting to another application requires INJECT_EVENTS permission
PS C:\Users\Dell\Desktop> adb shell input keyevent 3java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission at android.os.Parcel.createExceptionOrNull(Parcel.java:2376) at android.os.Parcel.creat...原创 2021-05-12 09:08:43 · 2948 阅读 · 0 评论 -
android-剪切板使用
ClipboardManager clipboardManager= (ClipboardManager)getSystemService(CLIPBOARD_SERVICE); Toast.makeText(MainActivity.this,result,Toast.LENGTH_SHORT).show(); clipboardManager.setText(result);原创 2021-04-30 14:15:42 · 143 阅读 · 0 评论 -
android11-mail报错问题解决
今天把手机升级到andorid11 , 结果发送邮件不行了.在android 10以下的版本都是可以的晴天霹雳.报错信息, java.lang.VerifyError: Rejecting class com.sun.mail.handlers.text_plain that attempts to sub-type erroneous class com.sun.mail.handlers.handler_base (declaration of 'com.sun.mail.hand...原创 2021-04-30 10:48:52 · 2357 阅读 · 2 评论 -
android11 打开指定包名的app出现问题
今天想打开一个app, 结果怎么都打不开. 在其他机型都是可以的.解决方案在清单文件中 添加, 在<manifest>的下面<queries> <package android:name="需要打开的app包名" /></queries>打开app的代码, 需要传入需要打开的包名 PackageManager packageManager = mContext.getPackageManager.原创 2021-04-30 09:56:54 · 1521 阅读 · 1 评论 -
android-不跟随系统进行深色模式切换
网上说的设置AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);毫无作用正确是在styles.xml中添加<item name="android:forceDarkAllowed">false</item>...原创 2021-04-28 11:37:11 · 5165 阅读 · 11 评论 -
Android-切换后台回来进入启动页面处理方案
if (!this.isTaskRoot()){ finish(); return; }将这段放入闪屏页面。因为栈里有其他的activity,所以不需要再次开启原创 2019-06-10 10:25:28 · 3993 阅读 · 1 评论 -
Android-8.0以上申请安装权限
在Android8.0之前的系统中,用户要从除官方应用商店之外的来源安装App时,需要打开系统设置当中的”允许未知来源”安装应用程序的选项,在最新的Android O当中谷歌已经删除了该永久授权的选项,从系统设置当中已经找不到该开关。谷歌将永久授权修改为每次的单独授权,当用户每次安装第三方来源的android软件时需要对软件权限进行手动确认。 当你的应用适配到8.0后,除了从Google pl...原创 2019-01-16 17:10:49 · 7941 阅读 · 0 评论 -
Android-将工程打包成jar
如何将工程的jar打包成jar在module的build.gralde,加入,此配置是与android标签平级def _BASENAME = "打包的名字";def _VERSION = "版本好";def _DestinationPath = "build"; //生成jar包的位置def zipFile = file('build/intermediates/packaged-...原创 2019-01-21 19:14:38 · 330 阅读 · 1 评论 -
Android-aidl初窥
AIDL怎么用,也许由于是工作性质的原因,很多人都没有使用过aidl.网上教程又是很懵逼,然后只好自己实践一下,做一下实践记录.作为一名合格Android开发人员,Service肯定是听过的,Service是Android四大组件之一,它是不依赖于用户界面的,就是因为Service不依赖与用户界面,所以我们常常用于进行一些耗时的操作.比如:下载数据等;进行读写文件等等.我们也常常用到了...原创 2019-01-15 14:44:08 · 250 阅读 · 0 评论 -
Android-解决部分手机版本号冲突需要手动点击覆盖安装问题
oppo,小米,在调试的时候,我们经常会遇到需要先卸载app,然后在重新安装的步骤.(个人华为还没遇到)如何去避免这样的问题.答案就是利用时间戳在开发中时间戳是一段时间数字,也就是每时每刻都会变化,但是版本号需要手动修改,这会导致开发成本上升.所以两者相结合一下,这样高版本就大于低版本,直接覆盖,不会有提示,如果版本号相同,则会提示是先删除,然后又需要重新安装,那么,想要避免这个方式,...原创 2019-01-17 11:38:41 · 1582 阅读 · 0 评论 -
(转)动手实现一个轻量级无侵入性的RxJava自动注销库RxLifecycle
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布一. 概述RxLifecycle是一个轻量级,侵入性低的RxJava注销管理库.他不会改变原有项目Activity的继承结构,轻松实现RxJava在Android平台下的自动注销,甚至你在自定义view的时候使用RxJava都能轻松完整自动注销功能.如果你的项目在开发中期想要引入RxJava相关的自动注销库,这个库将是你不错的...转载 2018-12-17 10:22:35 · 429 阅读 · 0 评论 -
Android-日常遭遇-文件上传MIME协议
写上传文件的时候,需要产生part才能让文件上传成功,而android原生并没有提供这样的方法,需要自己写.首先看下mime协议MIME Multipart Media Encapsulation, Type: multipart/form-data, Boundary: "AF+hwZxkNq38nq6w4liUUA" [Type: multipart/form-data] ...原创 2018-12-06 18:25:14 · 535 阅读 · 0 评论 -
Android-超简单的流式布局
流式布局,一般在商城类的项目中用到会非常多比如淘宝中,购物选择商品列表的时候,这个就是流式布局 创作起来也很简单,只要你计算出宽度,和高度,如果超出屏幕宽度,则换行摆放即可然后我就尝试着写了一下,果然还是可以的效果图核心方法主要是viewgroup的layout方法@Override protected void onLayout(boolean c...原创 2018-11-27 19:39:32 · 704 阅读 · 0 评论 -
Android-仿千度尺的横向滚动选择器
先上一个效果图主要核心方法,这里有一个问题ontouchEvent如果返回super,则move事件不会继续执行,down事件则没问题.所以这里要返回true其次,就是计算滚动距离的问题@Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) ...原创 2018-11-29 17:10:44 · 1422 阅读 · 0 评论 -
Android-面试题(2019.3.17更新结束,上班去了)
主要是博主最近在面试,正好把面到的问题记录一下,作为笔记,下次复习的时候进行针对性复习Android复习资料点这里面试题1.你接触的跨进程通信是什么博主答:目前接触的比较多的是aidl,广播,文件存储这种2.内存中如果加载一张500*500的png高清图片.应该是占用多少的内存3.handler原理中的messageQueue的原理说一下4.如果你自己写一个垃圾回收算法...原创 2019-03-03 23:16:21 · 1342 阅读 · 0 评论 -
Android-面试复习记录
android面试题binder机制主要有三部分.客户端client,服务端server,服务管理也就是servicemanager主要就是客户端拿到服务端的代理对象.通过代理对象身上的进行交互,反之服务端也是如此代理对象也就是具体的服务是从servicemanager中获取的.在binder通信的中,我们android启动的服务,也就是加载的服务,都会被servicemanager进行...原创 2019-03-11 10:34:07 · 574 阅读 · 0 评论 -
Android- InputMethodManager Leaks Activity
InputMethodManager 内存泄漏问题-What HappenedAfter putting in a new round of background images, I've noticed my app consistently crashing with out of memory exceptions if you exit and then restart the ap...原创 2019-05-05 13:03:41 · 286 阅读 · 0 评论 -
Android-RecycleView在vivo上有条目不显示的问题
开发过程中遇到vivoz3手机以及x23手机,recycleview条目不显示给recycleview设置 mListRV.setHasFixedSize(true);如果设置了还是不行,给recycleview设置固定宽高。 <android.support.v7.widget.RecyclerView android:id="@+...原创 2019-08-21 14:26:07 · 355 阅读 · 0 评论 -
(转)Android安全防护之旅---带你把Apk混淆成中文语言代码
一、前言最近想爆破一个app,没有加壳,简单的使用Jadx打开查看源码,结果把我逗乐了,代码中既然都是中文,而且是一些比较奇葩的中文字句,如图所示:瞬间感觉懵逼了,这app真会玩,我们知道因为Java语言是支持双字符的,所以可以将包名,类名,变量名,方法名定义成中文,或者其他国家的语言都可以的。所以本身这种做法是不会运行报错的,比如下面我们新建一个Java工程看一下效果:...转载 2019-08-21 14:16:35 · 169 阅读 · 0 评论 -
ffmpeg播放yuv以及pcm文件
// yuv播放ffplay -f rawvideo -video_size 宽x高xxx.yuv例如 :ffplay -f rawvideo -video_size 680x480xxx.yuv// pcm播放ffplay -ar 16000 -channels 1 -f s16le -i xxx.pcm其中16000是指采样率...原创 2019-07-03 17:52:14 · 888 阅读 · 0 评论 -
android-获取anr日志
最近发现anr文件,结果提示无权限。网上查了半天没有任何提示,灵光一闪,用linux命令来获取就可以了-rw-rw-rw- 权限是这样才可以总结了两个方案。我手机都可以拿出来。其他手机暂时没测过方式1adb shell进去手机的命令行页面cd data/anr/直接进去页面,然后通过查看全部文件来获取ls最后cat一下文件,就能将内容全部显示出来了...原创 2020-07-12 11:11:02 · 1829 阅读 · 0 评论 -
(转)Apk瘦身只要这一篇足够
本文是Android-Daily-Interview问答项目的一个回答,分享于此.第1条:使用一套资源这是最基本的一条规则,但非常重要。对于绝大对数APP来说,只需要取一套设计图就足够了。鉴于现在分辨率的趋势,建议取720p的资源,放到xhdpi目录。相对于多套资源,只使用720P的一套资源,在视觉上差别不大,很多大公司的产品也是如此,但却能显著的减少资源占用大小,顺便也能减轻设计师的...转载 2019-06-25 16:39:56 · 141 阅读 · 0 评论 -
Android-常用数据转换网址记录
ble数据转换http://a1anwang.com/post-20.htmljson格式化http://www.bejson.com/在线加密解密http://tool.oschina.net/encryptmd5加密解密https://www.cmd5.com/原创 2019-06-11 11:15:18 · 128 阅读 · 0 评论 -
Android NDK so crash,定位目标代码使用
命令行位于:$NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-addr2line用法示意:arm-linux-androideabi-addr2line -e 有符号的so crash内存地址--help:Usage: arm-linux...原创 2019-06-20 16:29:26 · 629 阅读 · 0 评论 -
(转)Android加快第三方编译速度
引用第三方库的aar文件,一般有以下两个build.gradlebuild.gradle(Module:demolib)configurations.maybeCreate("default")artifacts.add("default", file('demolibSDK_release.aar'))build.gradle(Module:app)dependencie...转载 2019-04-25 17:19:08 · 1995 阅读 · 0 评论 -
Android-抓包各大平台数据反加密
友盟:数据返回base64+前后旋转百度:数据返回 base64其他直播类平台涉及到抓包抓不到的,一般是取某一帧的时候,文件出错导致没有请求了.还有就是AES.我自己加密我自己...原创 2018-11-23 15:28:25 · 820 阅读 · 0 评论 -
Android-adb推拉文件
adb拉文件,就是从手机上把文件拿过来adb pull 目标文件夹 输出文件夹例如:我要拉手机上的data下名字叫a.txt文件.adb pull data/a.txt ~/Download/adb推文件输入: adb push 电脑路径 手机存储路径 adb push /Users/xxxx/xxx.txt /sdcard/xxx...原创 2018-11-14 14:52:23 · 257 阅读 · 0 评论 -
Android-动态布局加载
动态布局核心.编译性布局.布局要求是已经编译好的,也就是下图所示.如何编译.先打包成apk.然后进行解压,就能获得编译后的资源文件. 通过xmlPullParser进行解析,主要是LayoutInflater中的第二个方法以及第四个方法.通过xmlPullParser解析进行.解析方法:注:其中解析的文件需要.xml.并且是编译完成的.我这边用了判断.如果没有.xml.则会自动...原创 2018-11-14 11:17:10 · 128 阅读 · 0 评论 -
记录mac下反编译Android工具
apktoolhttps://ibotpeaches.github.io/Apktool/install/ 1.先新建一个sh脚本 ,这里可以用mac的命令行.还 是很方便的,touch apktool.sh@echo offif "%PATH_BASE%" == "" set PATH_BASE=%PATH%set PATH=%CD%;%PATH_BASE%;chcp 6...原创 2018-10-08 16:33:32 · 380 阅读 · 0 评论 -
Android-工作遭遇-音视频播放控制篇(2)
此篇主要是讲Android的视频播放在android播放视频,无非就是videoview或者mediaplay.但是查看videoview的源码之后,发现.他也是基于mediaplay进行播放的.就决定自己封装一个mediaplay.用于日常使用.首先看下MediaPlay的介绍.我的另外一篇文章讲述到了音频的播放.Android-工作遭遇-音量音频播放控制篇(1)Andro...原创 2018-09-29 10:15:50 · 256 阅读 · 0 评论 -
Android-从0开始集成编译zbar到能光速扫出二维码
前几天在群里吹牛逼,说到微信的扫码怎么怎么吊.怎么怎么厉害..当时一阵不服气.决定自己封装扫码器,后来搜了下,市场上大多数都是zxing和zbar.然后c语言我又不会,只能去封装zxing.后来工作没事情做,正好抽时间补了一下,把zbar给封装一编,做出一个最简单的扫码器.微信扫码是真的快,爱奇艺也是,不过我反编译看了下,他们用的满多jni还有都是zxing.以下是我封装zbar地...原创 2018-10-12 16:01:48 · 1992 阅读 · 0 评论 -
Android-工作遭遇-URLConnection原生请求http和https忽略证书
Android网络请求框架非常多,github一搜就是一堆.我的博客就不讲这些,我就讲讲原生已经够用了.HttpURLConnection是Android提供的一个网络请求库,个人认为,还是蛮好用的.HttpsURLConnection是本身就继承自HttpURLConnection的类首先是忽略证书这一块.有些请求涉及到请求证书.加载证书似乎很麻烦.(不麻烦,我不想加载)首先需要...原创 2018-09-27 19:41:45 · 2574 阅读 · 0 评论 -
Android-工作遭遇-打造多线程响应式编程基础架子(Future)
在andorid里面,线程间的切换非常频繁.任何耗时的操作就会导致,这种rxjava就很顺势的出来了,结构简单,切换简单,随用随走.那么如果不会rxjava.似乎有handler通知方法,或者说runonuithread..多个线程之间的通知怎么办呢.这种时候.在java中就有一个类Future的使用就产生了.=-=老大说,不能用第三方,只能用原生.并且不能有跳出线程的地方.举个栗子:这个栗子...原创 2018-09-27 19:20:38 · 196 阅读 · 0 评论 -
Android-VAST协议解析-xml实现方案(基于Smaato)
smaato的vast解析处理,有点长.<?xml version="1.0" encoding="utf-8"?><VAST version="2.0"> <Ad id="223626102"> <AdSystem version="2.0">Smaato&原创 2018-09-21 15:38:49 · 2260 阅读 · 0 评论 -
Android-工作遭遇-压缩传输数据并且防止抓包
在开发中,遇到了字节过大,以及非常容易被抓包,这种时候,进行压缩了字节数组,并且大小减小,功能展现非常强大效果图.上面的文字是1022大小压缩前的文字,下面的文字是311大小解压出来的文字.没有任何的数据丢失这边主要是采用了lz4的字符串压缩技术,进行压缩与解压,只要跟后端约定,就可以实现,如果封装了请求网络的框架,则只用在添加数据的时候加上处理即可.附上工具类源码pub...原创 2018-09-21 15:05:14 · 764 阅读 · 0 评论 -
Android-工作遭遇-获取ip地址
工作需要获取到ip地址 public static String getIPAddress(Context context) { try { ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERV...原创 2018-09-21 14:51:26 · 209 阅读 · 0 评论 -
Android-工作遭遇-如何在surfaceview中嵌套videoview
在工作的时候,surfaceview是一个相机的容器,当解析到关键的点的时候,surfaceview的下半部分会变成视频.进行视频的播放.或者图片的展示,而当我认为一切顺利的时候,surfaceview有一个覆盖问题,默认会在最上层.也就是视频播放失败,边框是有的,声音也是有的,但是.视频的画面无法展示.后来几经琢磨.发现setZOrderOnTop可以将video放在最上层,进行播放...原创 2018-09-21 14:47:25 · 711 阅读 · 0 评论 -
Android-工作遭遇-Fragment管理篇
Fragment,简称碎片,是Android 3.0(API 11)提出的,为了兼容低版本,support-v4库中也开发了一套Fragment API,最低兼容Android 1.6。过去support-v4库是一个jar包,24.2.0版本开始,将support-v4库模块化为多个jar包,包含:support-fragment, support-ui, support-media-com...原创 2018-09-21 14:40:39 · 643 阅读 · 0 评论 -
Android-工作遭遇-音量音频播放控制篇(1)
这一篇是主要是讲述音量控制以及短音频加载控制.通过MediaPlayer或者SoundPool进行短音频的播放.我这边采用了动态初始化的方式进行加载,也就是说,你放进去的音频会一直加载进去.并不会加载一次之后,便被销毁首先讲下SoundPool的封装使用方法.音量控制直接在AudioUtil中注:此类是不能监听播放完成回调. private AudioUtil.SoundPo...原创 2018-09-21 14:30:13 · 838 阅读 · 0 评论 -
Android-谷歌规范-获取GAID
谷歌规范中,涉及广告部分的需要加上gaid,整理了一下日常获取gaid的方法.方法1. 通过谷歌server的jar包来获取,整个jar包太大.12mb.放弃方法2. 通过basement的jar包来获取.比较小.300来k的样子,很容易获取(注意:此方法需要在子线程执行)获取jar包 try { Advert...原创 2018-10-08 17:25:58 · 17232 阅读 · 0 评论