Android
文章平均质量分 95
技术小黑屋
博客已经转移到 http://droidyue.com/
展开
-
这可能是最好的 Android/Kotlin日志输出方法
在编程调试和定位问题的时候,日志是一个最常用的工具。比如输出一些信息,确定执行轨迹。今天我们这里简单聊一聊打印日志的一些分析。通常,我们进行日志输出的时候都会限定在debug包下执行,对于非debug包,我们就不输出日志。那么如果是非debug,不同的日志输出方式可能存在一定的性能问题,本文将通过几个版本来对比着方面的差异。原始版这可能是最原始的版本打印日志了,判断是否是debug,然后决...原创 2019-11-24 18:53:28 · 5409 阅读 · 0 评论 -
Android中检测软键盘的弹出和关闭
Android系统并没有提供明显的API来监听软键盘的弹出和关闭,但是在某些情况下我们还是有办法来检测软键盘的弹出和关闭。从StackOverflow找到了一个不错的方法。但是这种只适用于在manifest中目标Activity设置android:windowSoftInputMode=”adjustResize”的情况。adjustResize表示The activity’s main原创 2013-07-02 22:45:55 · 4512 阅读 · 0 评论 -
DataOutputStream的writeBytes(String s)
最近,在关于网络请求中有用到DataOutputStraem中的writeBytes()方法,然而就是这个问题,导致了传输中文时就出现问题,着实困扰了很长一段时间。后来,服务器端同事建议我使用DataOutputStream.write(byte[])方法,发现问题解决了。起初认为是编码问题,后来认真研究了一下,发现了问题的原因。首先,先看一下DataOutputStream的writeB原创 2013-07-03 22:26:28 · 6513 阅读 · 1 评论 -
Android处理网页的短信链接
最近遇到了很多网页,尤其是通过短信找回密码的网站,其规范格式为106659999,但是各个系统对这个格式支持也不是很统一的,我先后在ios和windows Phone上做了测试,在ios上会跳转到短信程序,但是号码和短信内容都是无法获取的,而Windows Phone上没有任何响应。在Android上,不同的浏览器处理的也是不一样的。有些是将这些(sms:106659999?body=修改密码原创 2013-07-04 22:49:31 · 2577 阅读 · 0 评论 -
BadPaddingException RSA
在Android 开发中有用到了RSA,使用时遇到了一个问题,提示BadPaddingException: Blocktype mismatch: 0.问题原因是:没有指定填充算法,由于默认填充存在问题,必须自己处理,所以需要指定填充算法即可。按照以下修改即可。Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING");参考转载 2013-07-06 14:07:02 · 2337 阅读 · 0 评论 -
Android实用问题汇总
用来记录遇到的小问题。1.android error: Apostrophe not preceded问题是Apostrophe(')没有被转义,比如这个文字资源 It's beautiful.应该写成It\'s beautiful即可。原创 2013-08-01 11:08:50 · 1702 阅读 · 0 评论 -
Android中系统设置中的清除数据究竟会清除哪些数据
今天中的一个story突然提到了系统设置中的清理数据,后来开始思考究竟系统的应用的这个清理功能,究竟会清理那些数据。于是开始研究,以com.mx.browser为例,思路大概为首先为/data/data/com.mx.browser下的每一个文件夹下建立一个标志文件,这里为1.txt,然后执行清理数据操作,最后对比结果。首先,进行清楚数据之前的的各个文件夹的情况。/data/dat原创 2013-07-02 23:02:40 · 7041 阅读 · 1 评论 -
Android扫描多媒体文件剖析
这篇文章从系统源代码分析,讲述如何将程序创建的多媒体文件加入系统的媒体库,如何从媒体库删除,以及大多数程序开发者经常遇到的无法添加到媒体库的问题等。本人将通过对源代码的分析,一一解释这些问题。转载 2014-07-13 11:58:25 · 1622 阅读 · 0 评论 -
Android Phone和Pad UA区别
很多Android开发者或者网站端都可能会困扰关于如何区分Android phone和Android Pad的ua。确实这个问题很困难,我也曾被困扰了一段时间,后来在Stackoverflow中发现了解决方法。答案:Mobile Android has “mobile” in the User-agent. Tablet Android does not.详细英文解释:原创 2013-07-01 21:14:37 · 11191 阅读 · 2 评论 -
Android过滤具体应用日志的脚本
最近新修改完善了一个脚本,贴出来和大家分享一下。功能:按照程序(包名)过滤某一程序的日志,便于更加准确定位问题。原理:根据报名找到进程ID,然后根据得到的进程ID过滤代码:#!/usr/bin/env python#coding:utf-8#author:andrewallanwallace@gmail.com#This script is aimed to原创 2013-07-13 17:28:15 · 2298 阅读 · 1 评论 -
Google市场推广统计
Google Play作为Android最大的应用市场,也存在这推广等常用的行为,那么如何统计呢,Google Analytics SDK或者其他的SDK都提供了方法,实际上是可以不需要任何sdk,完全可以自己实现的。原理是这样的:当来自Play Store上的应用被安装之后,Play Store会发送一个指定的广播给被安装的包,广播的action为com.android.vending.IN原创 2013-06-28 13:29:06 · 2671 阅读 · 1 评论 -
为什么我要改用Kotlin
写在前面的话,作为一个不熬夜的人,一觉醒来发现Kotlin成为了Android的官方语言,可谓是大喜过望。为了趁热打铁,我决定提前三天放出原定本周日Release的文章。希望能及时让大家了解一下Kotlin。相信很多开发人员,尤其是Android开发者都会或多或少听说过Kotlin,当然如果没有听过或者不熟悉也没有关系。因为本篇文章以及博客后期的内容会涉及到很多关于Kotlin的知识分享。在写这篇文原创 2017-05-18 08:40:19 · 102495 阅读 · 44 评论 -
如何看待 Kotlin 成为 Android 官方支持开发语言?
Google IO 2017宣布了 Kotlin 会成为 Android 官方开发语言。一时间朋友圈和Android圈被各种刷屏。当然我也顺势而为发布了一篇的文章《为什么我要改用Kotlin》,着实狠狠地蹭了一波热度(尽管这样会被鄙视)。眼下Android圈已经躁动了,甚至严重到如果对Kotlin视而不见就显得自己不像一个合格的Android程序员。本文尝试从一个客观全面一点儿的角度来看待这件事情,原创 2017-05-21 21:34:49 · 31368 阅读 · 23 评论 -
Kotlin 和 Flutter 对于开发者究竟意味着什么?
作者 | 段建华责编 | 唐小引出品 | CSDN(ID:CSDNnews)写在前面【CSDN 编者按】近些年来,编程语言流行度的变化其实不大,在TIOBE 编程语言排行榜上,Java、C、C++ 固若金山,也就只有 Python 会攻城略地成为第四。在这 TOP3 之中,Java 以其非常优秀的普适性,可以用于前后端开发,再加上非常成熟的 JVM 虚拟机以及整个 Java...原创 2019-05-12 21:53:48 · 9181 阅读 · 10 评论 -
android.view.WindowManager$BadTokenException: Unable to add window — token null is not for an applic
之前遇到过这样的问题,04-12 10:40:33.302: E/AndroidRuntime(17213): Caused by: android.view.WindowManager$BadTokenException: Unable to add window — token null is not for an application04-12 10:40:33.302: E/A原创 2013-07-01 21:25:56 · 3125 阅读 · 0 评论 -
使用扩展名获取mimetype
在Android中很多时候我们需要计算出文件的mimetype,而我们通常的思路就是通过扩展名来获取对应的mimetype,而如果自行处理,将维护一个比较大的映射表,而实际上大可不必,Android提供了一个比较大的key(扩展名) - value(mimetype)的映射。所以我们不需要重复造轮子,直接使用即可。这个类的位置:android.webkit.MimeTypeMap原创 2013-06-29 11:02:58 · 3535 阅读 · 0 评论 -
快速提高Android开发调试的使用技巧
留在这里备忘,同时如果对其他人有帮助,那就再好不过了。1.过滤Android程序出现的异常和崩溃adb logcat |grep --color=auto -E "System.err|AndroidRuntime"2.按照包名过滤细分日志我们先写一个这样的脚本,命名为logcatPkg,然后加上可执行的权限#!/bin/bashpackageName=$1pid=原创 2013-07-07 09:57:42 · 3348 阅读 · 0 评论 -
'adb' 不是内部或外部命令,也不是可运行的程序或批处理文件。
'adb' 不是内部或外部命令,也不是可运行的程序或批处理文件。在座android开发中我们都离不开使用adb来操作一些东西,但是当我们在命令行中使用adb的时候,有时会出现'adb' 不是内部或外部命令,也不是可运行的程序或批处理文件。这样的提示,这是我们就需要要做一些处理了。错误的原因主要是找不到adb.exe文件,在最初的android sdk中adb.exe是位于sdk目录下的to原创 2011-12-06 13:29:11 · 18986 阅读 · 5 评论 -
Activity变成Dialog样式
Activity变成Dialog样式将Activity应用dialog的主题在manifest文件中Activity中添加下面这句android:theme="@android:style/Theme.Dialog"示例xml:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="p原创 2011-12-17 10:02:31 · 4094 阅读 · 0 评论 -
代码调用Android应用程序卸载
代码调用Android应用程序卸载在Android的应用中,很少有些应用会主动提供卸载自身的应用,最多的也就是一些卸载器应用。个人认为从产品角度来说,主动提供卸载实际上未必不可尝试。下面从技术角度讲如何实现卸载。原理主要为设置一个卸载制定包的intent,然后有对这个intent感兴趣的应用去处理,这里一般默认的是系统的卸载管理进行接收,并处理。下面代码中我们值需要传入一个String原创 2011-12-11 14:40:33 · 10072 阅读 · 1 评论