
安卓开发
JQ专栏
一头不一样的程序猿,爱学习和分享,不断学习新知识,热爱运动,如:篮球、跑步、骑车、游泳...
展开
-
INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113
好久没有过模拟器了,最近接了一个坑,用着出现这个问题,老装不上,一时间没想起来17:09 Emulator: ##KBD: Full queue, lose event17:09 Failed to finalize session : INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113...原创 2018-11-17 19:30:28 · 7679 阅读 · 2 评论 -
Android 自定义漂亮的圆形进度条
公司有这样一个需求所以现在就将它抽取出来不废话,直接上代码自定义viewimport android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.RectF原创 2017-08-05 16:57:43 · 24946 阅读 · 9 评论 -
Android7.0 发生的android.os.FileUriExposedException错误
在Android7.0的系统上调用系统相机拍照或者进相册,便会出现android.os.FileUriExposedException错误。这是安卓7.0以上版本,做了一些系统权限更改,为了提高私有文件的安全性。禁止在您的应用外部公开 file:// URI,也就是说不能直接在应用间进行文件共享,需要URI 临时访问权限。在配置文件中加上一个provider<!-- 如果你的app支持andro原创 2017-09-01 00:17:00 · 3137 阅读 · 0 评论 -
android.view.WindowManager$BadTokenException
下面是bugly崩溃日志显示的出现问题打印信息:android.view.WindowManager$BadTokenExceptionUnable to add window -- token android.os.BinderProxy@2046875b is not valid; is your activity running?解析原始1 android.view.ViewRootIm原创 2017-09-18 12:35:50 · 1493 阅读 · 0 评论 -
Glide加载相同地址图片,不缓存
问题:用Glide作为图片加载框架,图片的URI地址不变,每次更换图片时,都存在缓存情况,加载不出来最新图片。解决方法有两个:1,将磁盘缓存设置为DiskCacheStrategy.NONE(磁盘不缓存)即可;//ImageURL:图片的URL地址 icon_course_default:加载出错的默认图 DiskCacheStrategy.NONE:不缓存 imageView:图片控件Gli原创 2017-09-22 22:55:53 · 7092 阅读 · 0 评论 -
支付宝web支付,mobileclientgw-
支付宝web支付,mobileclientgw- 一堆数字这是用支付宝的web端,进行支付时部分手机会出现这些奇怪数据。不知道的和以为出现啥问题了呢?其实只是页面中写一些信息而已,部分手机显示,部分要输入密码时才显示。不过没有啥影响想要一看究竟,在浏览器打开 https://mclient.alipay.com/index.htm ,然后再查看源码,拉到底部附近就会看到类似的,如下图:这两张图就原创 2017-09-07 00:20:32 · 24926 阅读 · 5 评论 -
AS出现Error:Cause: peer not authenticated
有时导入一些项目时,出现这个错误!导致项目无法构建。解决办法很简单,修改gradle的版本号!如下图:将gradle的版本 2.1.2 改为 2.3.2改好重构一下就可以了原创 2017-09-07 00:09:20 · 2046 阅读 · 0 评论 -
华为开发者联盟 -- 测试中心
经常将应用发布到各大应用市场,不过华为让我特别深刻些!有时候审核特别慢,有时要4 5天才能通过,这让我有些恨它;不过它和其他平台不同,里面有个测试中心挺好玩的。介绍给感兴趣的人华为开发者平台上有个不错的小工具,帮助开发者利用华为手机去测试自己的应用,关键是可以在线操作真机,用起来特别溜。下面就是它的截图原创 2017-09-07 00:02:48 · 3220 阅读 · 0 评论 -
使用FragmentTabHost出现的错误!
这就是我刚刚遇到的一个常见的问题 java.langIllegalStateException: No tab content FrameLayout found for id 213123072004-15 16:28:27.159: D/AndroidRuntime(7661): Shutting down VM04-15 16:28:27.159: W/dalvikvm(76原创 2016-04-15 17:30:23 · 1369 阅读 · 0 评论 -
Android Studio插件安装
为什么要用插件呢?因为这都是一些比较牛的人,通过写这样的插件来帮助大家提高效率的,所以要善于利用好大神提供的工具,更好地提高自己的开发效率1,选中状态栏的文件 File 2,再选设置 Settings 3,接着再选插件 Plugins 4,最后,点击Browse repositories…,就进到想要安装的插件界面,再在上面编辑框输入要的插件名称,选中安装即可 最后简单写一下步骤:File–>Se原创 2017-08-23 00:20:58 · 18453 阅读 · 0 评论 -
评论中显示表情,苹果和安卓都一样
刚刚有个这样的需求,在一个帖子那里可以显示表情,下面就是做出来的效果如果是没有处理,直接将内容发给服务器,到时服务器那边会存不了。不过只需要简单的处理,就可以让服务器保存信息的。将数据进行UTF-8编码,简单粗暴!将你要上传的信息,包括文字、英文、数字、表情等等都进行utf-8编码,到拿到后台返回的数据显示前,进行相应的utf-8解码!进行utf-8编码try { String writ原创 2017-05-22 21:22:26 · 2811 阅读 · 0 评论 -
Android 完整漂亮问卷、试卷 -- 支持单选、判断、不定项
项目中要做一个考题的问卷,网上博客完整、又漂亮写出来的比较少。灰常感谢这个朋友给的思路,参考了:http://blog.youkuaiyun.com/jing110fei/article/details/46618229上效果图里面的注释已经很详细了,不做过多解析了Activity代码import android.app.Activity;import android.content.Context原创 2017-08-07 23:40:44 · 9253 阅读 · 6 评论 -
TextView显示html信息、在文本下面添加下划线、中划线、设置图片
1,在文本下面添加下划线tv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);2,显示html信息//htmlString这个是要显示的内容tv.setText(Html.fromHtml(htmlString));//不过里面的内容还可以像写html样式一样tv.setText(Html.fromHtml("<font color='black'>原创 2016-11-03 16:04:19 · 3400 阅读 · 0 评论 -
安卓非常实用的自动化测试工具 -- Monkey详细的说明
Monkey是安卓SDK自带一个自动测试工具,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常,操作简单!查看monkey使用帮助:–help : 列出简单的用法JDK环境也要配置好!不懂参考这篇文章http://blog.youkuaiyun.com/qq_32519693/article/details/71330930,下面这样就是配好了 新建一个ANDROID_HOME系统变量,原创 2017-08-18 21:15:01 · 3307 阅读 · 0 评论 -
调起引用市场,引导用户进行评分
效果:这里调起的是手机上的应用商店/** * 给应用评分 * packaName 应用的包名 */public void commentApp(String packaName){ try { Uri uri = Uri.parse("market://details?id=" + packaName); Intent intent = new In原创 2017-06-01 10:18:17 · 1237 阅读 · 0 评论 -
应用发布前,需要注意事情
下面这些不是一定的,只是自己个人的一些习惯而已打包要进行混淆,防止代码被反编译,混淆还能去除不用文件和图片;进行应用加固(360加固宝、腾讯乐固);**自己进行一次反编译操作,看能否被反编译出来;一般360加固后,反 编译出来只看到一些源码;而腾讯乐固加固后反编译出来有一堆源码,看着就不爽,加固操作又稍微麻烦点,就个人而言喜欢360加固宝多点;**这个在打包前该做的,应用里面集成bugly原创 2017-09-13 13:02:17 · 376 阅读 · 0 评论 -
Android Studio中查看连接手机的布局
有时候因为某些需求,需要知道一个控件的ID。用那么长时间一直没发现一个hierarchyviewer,这个可以直接查看某界面上控件的ID的神器。今天终于在AS中找到了。不用过多描述了,截图上已经清晰的看到啦!1,Tools -> Android -> Android Device Monitor2,点击图上那个好像多台手机叠在一起的那个图标,等待一下就好了。出现图2时,再点击选中你要查看的那个控件原创 2017-10-19 00:19:59 · 6783 阅读 · 0 评论 -
TextView设置文字竖着排放
TextView设置文字竖着排放:很简单,只要设置宽高大小自适应,每行最多显示长度为1即可!<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="1" android:textStyle="bold" android:tex原创 2017-10-10 19:40:29 · 5161 阅读 · 0 评论 -
统计订单:复选+全选+计算 的列表
话不多说,选上效果图。带选择框和全选按钮的列表,还加上些计算功能,这并不是难就是稍微繁琐了些不要说,就是干,直接上代码了1,主页面的布局文件activity_test7.xml &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;amp;gt;&原创 2018-06-01 20:46:59 · 908 阅读 · 0 评论 -
编辑框已经获取了焦点,输入法不自动弹起
问题:编辑框已经获取了焦点,但是手机输入法不自动弹起解决方案1:直接在activity声明时,设置 android:windowSoftInputMode=”adjustResize|stateVisible”解决方案2:用Handler主动调起输入法 new Handler().postDelayed(new Runnable() { publ...原创 2018-06-08 17:14:52 · 1581 阅读 · 0 评论 -
初次接触 Lottie
项目中需要加载一个 GIF 的小动图,本来想用制作好的 GIF, 但发现一个更好玩的 Lottie ,上一个官网的效果图 其实使用起来很简单:1,添加相应依赖,这里用低版本 compile ‘com.airbnb.android:lottie:1+’2,在需要的布局的XML文件中加入,将imgData.json数据放入assets目录中 &lt;com.airbnb....原创 2018-05-18 18:01:25 · 710 阅读 · 2 评论 -
视频转音频时,安卓和iOS播放的时长翻倍 --- 好一个坑
做个标记,防止遇到这个坑的人能早日爬出来。最近项目中做一个音频的功能,是将原来的视频转换为音频(MP3格式)。问题来了,后台那边找到一个办法将视频直接转换成音频,那些音频在不同手机上的播放效果出现问题:显示的时长上多一倍,安卓上出现的频率比较低,而iOS的很多都出现改问题原因:出现在后台将视频转换成音频的问题上,因为音频中有个叫 “比特率” 的东西在作怪。原来是后台的大兄弟转音频时比特率...原创 2018-05-18 17:09:50 · 1468 阅读 · 0 评论 -
音频播放时,将前台服务和通知栏关闭
正在播放音频下,退出登录或被挤下线等情况下,就要遇到下列情况问题:播放时设置服务前台运行,创建一个消息通知栏service.startForeground(NOTIFICATION_ID, new Notification());解决办法:服务停止在前台运行,再清空通知栏service.stopForeground(true);notificationManager.cancel...原创 2018-04-25 20:14:29 · 814 阅读 · 0 评论 -
为什么MediaPlayer中onCompletion()每次播放音频时都触发?
最近项目中要做音频的,遇到奇怪问题是每次播放音频时,就触发onCompletion()方法问题:使用MediaPlayer播放音频时,设置OnCompletionListener,点击下一曲或者上一曲有时会跳过曲目播放,在不断的循环解决办法:设置OnErrorListener,将onError()返回true即可。在源码中可以查到MediaPlayer的handle中播放异常时,会检测On...原创 2018-04-25 19:53:44 · 4514 阅读 · 1 评论 -
小米部分手机在相册或相机拍照裁剪图片时,出现错误问题
小米部分手机在相册或相机拍照裁剪图片时,出现错误问题 Unable to load resource 0x00000000 from pkg=com.android.systemui报错型号:Mi Note3 7.1.2(不过7.1.1没问题)、Max2 7.1.1打印日志信息:03-27 15:28:06.602 1789-1789/? E/Icon: Unable to load...原创 2018-03-27 19:27:01 · 4830 阅读 · 0 评论 -
dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/comda.xfdsafda.activdity-1/base.apk"]
下面是出错的日志信息10:42:25.638 2656-2656/comda.xfdsafda.activdity E/AndroidRuntime: FATAL EXCEPTION: main Process: comda.xfdsafda.activdity, PID: 2656 ...原创 2018-04-14 14:55:02 · 4989 阅读 · 0 评论 -
glide首次加载图片时,出现图片变形,重复一下就正常
glide首次加载图片时,出现图片变形问题,重复一下就正常了,这样看着总是很不爽!简单粗暴的解决办法:将加载的动画去掉,出来的就加载正常了! dontAnimate()例如:Glide.with(context).load(url).error(失败默认图).placeholder(预加载默认图).dontAnimate().into(imageView);...原创 2018-03-31 15:47:53 · 2861 阅读 · 0 评论 -
修改安卓UA(User Agent)
修改安卓内置浏览器的UA(User Agent),即用户代理需求是:让H5那边需要区分是PC、安卓APP、iOSAPP、安卓微信浏览器、iOS微信浏览器访问的。UA里面包括底层系统,手机型号,手机系统版本号等等信息1,首先我们来打印一下UA:WebSettings settings = webView.getSettings();settings.getUserAge...原创 2018-03-24 09:53:16 · 21626 阅读 · 1 评论 -
Multiple substitutions specified in non-positional format; did you mean to add the fo
出现的问题:安卓出现字符串带百分号的情况,AS高级版本编译时出现下面问题:Error:(3575) Multiple substitutions specified in non-positional format; did you mean to add the formatted=”false” attribute?原因:string.xml中的 % 导致编译失败 解决:其实,编译器...原创 2018-03-19 21:21:00 · 5336 阅读 · 0 评论 -
判断手机是否有虚拟按钮,获取虚拟按钮的高度
判断手机是否有虚拟按钮 /** * 获取是否存在NavigationBar,是否有虚拟按钮 */ public static boolean checkDeviceHasNavigationBar(Context context) { boolean hasNavigationBar = false; Resources rs =原创 2017-10-16 12:36:34 · 2371 阅读 · 1 评论 -
Android Studio中的APK分析器
拖拽APK到Android Studio的编辑窗口。(最粗暴的方式)切换到Project视图,并且双击APK文件。在菜单栏中选择 Build -> Analyzer APK,并且选择APK。下面是某软件的图解: - 包含了:包名、版本号、解压的大小、压缩的大小、lib库、res资源文件、assets、AndroidManifest.xml、微信SDK(看你apk中是否用到)一般各个资源原创 2017-11-06 23:32:02 · 3371 阅读 · 0 评论 -
应用市场中的应用转让
最近有个好朋友请教我,如何将应用商店将一个已经发布的应用,从旧的账号转到另外一个开发者账号中?下面就是根据经验和了解到的答案1,安卓部分应用市场会有应用转让入口的,或者是以认领(大多是通过邮件)的方式进行转让。具体要看应用市场流程,如果有不清楚地方就咨询一下他们的客服人员就能解决了。注意重新打包上传时要用同一个签名文件,要不新发布的版本用户更新不能直接覆盖旧版本,需要卸载原来的版本再安装新版本。原创 2017-11-06 22:35:58 · 3510 阅读 · 0 评论 -
第三方短信验证
这个是我基于eclipse写的一个ShareSDK的短信验证不说太多直接上代码了,里面的注释清晰 这是Activityimport java.io.ByteArrayOutputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.net原创 2016-10-20 18:18:15 · 1701 阅读 · 0 评论 -
loadDataWithBaseURL加载HTML数据
不废话,直接开门见山了需求和效果图要显示这样一段HTML数据:<img src=\"https://ss0.bdstatic.com/-0U0bnSm1A5BphGlnYG/tam-ogel/dd9d1d686cdc814db9653b254e00402e_259_194.jpg\" alt=\"\" /> \r<p style=\"text-align:right;\">\r\t品类定位的思考原创 2017-06-19 22:48:58 · 22861 阅读 · 5 评论 -
自定义ScrollView控件 -- 拉申时跟随缩放效果
需求就是让第一张的图片在拉申时跟随缩放效果。一个可以滑动的自定义ScrollView控件,放大第一个子控件。还能监听它滑动时位置不废话直接上效果图这个中间放大的效果图:直接上代码了:自定义的ScrollView控件/** * 自定义的下拉放大scrollView,还具备监听滑动位置的功能 * 这个控件只是将它里面第一个控件放大 * 只需要将第一个放ImageView控件 */pub原创 2017-07-26 14:32:15 · 1078 阅读 · 0 评论 -
小米手机,测试时应用图标不能更改,还出现偶尔应用版本还原
前段时间,用小米手机进行测试应用时,出现了一个奇怪问题。就是些小米手机的测试时已经更换了图标,可是还是看到旧图标,可是已经将这张旧的图片从软件中删除了;在装上新的测试版本时,过一会或者过一两天就会自动还原成之前的旧版本。当正为这个发愁时,网上早就有人遇到过这种状况了!一切的原因都是小米系统的惹的祸,它默认会更新,它先检测该软件在它的应用商店中有没发布;如果有就是用你在它上线时传的叫“完美图标”的图片原创 2017-06-09 14:58:52 · 3016 阅读 · 0 评论 -
couldn't find "libweibosdkcore.so"
按照官网给出来的例子,通过添加依赖的方式,实现微博的分享功能。测试很多少见出现问题,不过在华为(TAG-CL00)手机上就直接奔溃了,出现下面的错误,说找不到libweibosdkcore.so包java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file “/data/app/com.xf.a原创 2017-06-01 09:58:34 · 5642 阅读 · 0 评论 -
极光推送的集成
这是在极光的官网上,参考文档写的一个简单例子!以JPush 3.0.5 版本为例,直接上代码了,代码注释清晰1,要做的就是,主要的写这几个类,和配置一下gradle文件2,配置Module的build.gradle,添加依赖,还有申请的极光官网上申请的AppKey apply plugin: 'com.android.application'android { compileSdkVe原创 2017-05-10 15:24:26 · 1238 阅读 · 0 评论 -
判断是否安装某应用
只需要传入应用的包名就能判断是否已经安装该应用 /** * 通过包名,判断是否安装客户端,如: * 微信:com.tencent.mm * QQ:com.tencent.mobileqq * 微博:com.sina.weibo * @param context 上下文对象 * @param packageName 包名 *原创 2017-05-28 18:21:13 · 1096 阅读 · 0 评论 -
在相册查看保存的图片
简单拓展,保持在本地后提醒相册,这里有图片,就可以在相册中看到保存的图片了 /** * 保存并且让相册可以查看 */ public void saveRemind(){ saveMyBitmap(getApplicationContext(), myUtils.loadBitmapFromView(ll_big_layout));//ll_big_原创 2017-05-28 18:16:30 · 1382 阅读 · 0 评论