
Android
文章平均质量分 73
github_2011
有志者,事竟成,破釜沉舟,百二秦关终属楚;
苦心人,天不负,卧薪尝胆,三千越甲可吞吴。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android debug调试
1. 准备工作准备工作,为了防止调试过程中应用被系统AMS干掉,先把开发者选项中的【显示所有应用程序无响应】开关打开,不打开的情况下断点调试过程中应用进程很容易挂掉。不同厂商机型该开关名称不完全相同,但是大致都是这个意思,去开发者选项,应用相关的部分可以找到。...原创 2022-01-01 22:57:04 · 2427 阅读 · 0 评论 -
Android多线程操作操作对象出现空指针问题
在android中经常会有一些多线程操作同一对象的问题,经常会发生空指针的情况,尤其是跑monkey测试时。下面写点伪代码举例说明一下://已知mHandler为成员变量;if (mHandler != null) { mHandler.xxx(); mHandler.yyy();}上面的代码,大家都很熟悉,测试跑monkey出现了NullPointerExcep...原创 2019-12-25 00:28:04 · 2457 阅读 · 0 评论 -
Android获取App当前页面的Activity名称
Android开发过程中我们经常会有这样的需求:想知道某个App的某个页面的Activity是什么?方法1.adb命令获取该页面的名称adb shell "dumpsys window | grep mCurrentFocus"adb命令获取比较简单直接(对于获取单个页面比较方便)方法2. Androidstudio 的Layout Inspector获取打开android...原创 2019-10-14 19:46:12 · 7614 阅读 · 0 评论 -
Android 7.0安装apk
在做应用版本更新的时候使用Android 7.0的手机测试发现一个问题:下载完成安装包之后,不能跳转到安装界面,使用7.0以下的手机没遇到这种情况。对于面向 Android 7.0 的应用,Android 框架执行的 StrictMode API 政策禁止在您的应用外部公开 file:// URI。如果一项包含文件 URI 的 intent 离开您的应用,则应用出现故障,并出现 FileUr原创 2017-07-04 14:05:13 · 7275 阅读 · 4 评论 -
Android 自带描边颜色渐变炫酷进度条
上图是我在PhotoShop中做出的进度条效果图,这张图充分阐释了本篇自定义进度条的精髓!在Android中实现该进度条的原理:(和ps中作图原理一样,理解ps中的图层便懂得了如何在android中实现该进度条)1. 画第一个圆角矩形作为进度条的最底层(描边层)2. 画第二个圆角矩形作为进度条的第二层(背景层)盖在描边层之上3. 画第三个圆角矩形作为进度条的最外层(进度层)盖在背景原创 2017-07-13 11:06:30 · 3368 阅读 · 0 评论 -
Android 设置应用的底部导航栏(虚拟按键)背景颜色
Android手机机型种类繁多,但是虚拟按键也就是底部的导航栏,不外乎两种设计方式,一种是作为虚拟按键设计到屏幕内部,一种是作为系统按键设计到屏幕外面。对于按键在屏幕内部的机型,因为虚拟按键也是屏幕内容的一部分,它也实际占据屏幕一定的高度,在系统应用中虚拟按键默认呈现的都是透明的背景色,但是在用户应用中如果未设置虚拟按键的背景颜色,它默认呈现的多为黑色。但是我们可能原创 2017-07-10 11:03:54 · 62241 阅读 · 1 评论 -
Android 8.0安装apk
前一段时间在做App版本更新时,使用Android 8.0的手机测试发现一个问题:安装包下载完成之后,屏幕闪了一下并没有跳转到安装界面,使用8.0以下的手机并没有这个问题。Android 8.0 Oreo 中,Google 移除掉了容易被滥用的“允许位置来源”应用的开关,在安装 Play Store 之外的第三方来源的 Android 应用的时候,竟然没有了“允许未知来源”的检查框,如果你还是原创 2017-11-21 16:38:50 · 33476 阅读 · 6 评论 -
封装一个在小项目中使用的volley(通俗简便、方便灵活)
Google 2013 I/O大会上发布了Android平台上的网络通信库volley,今天Google 2017 I/O大会正在进行中,封装个小volley做个纪念(主要是以后可以在小项目中直接使用)。volley的设计目标是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,volley的表现会非常的糟糕,根据项目的实际情况选择使用。voll原创 2017-05-18 12:02:17 · 928 阅读 · 1 评论 -
Android监测手机网络状态变化的广播
android手机网络发生改变系统会发出相应的广播,我们只需要注册该广播就可以实时监测手机网络的变化了。首先我们创建一个广播NetworkChangedReceiver继承系统广播BroadcastReceiver,在onReceive方法中做对应网络变化的处理逻辑就可以了:public class NetworkChangedReceiver extends BroadcastRec原创 2017-05-27 15:25:54 · 12634 阅读 · 2 评论 -
Android 屏幕适配之dimens适配
在过去多个项目中一直使用dimens适配,这种适配方式的优点很明显,不用管什么dp还是dpi这些东西,只需要以一种屏幕分辨率为基准(例如1280x720,相当于把屏幕宽分成720份,高分成1280份),生成对应屏幕分辨率的的dimens文件即可完成适配,缺点也比较明显,就是一种分辨率就需要一套dimens文件,所以dimens文件会比较多;例如这里我们以1280x720的屏幕分辨率为基准那么val...原创 2017-05-23 10:23:02 · 31731 阅读 · 60 评论 -
Android中的“再按一次退出程序”代码实现
private long mExitTime;//保存上次点击back键的系统时间public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if ((System.currentTimeMillis() - mExitTim原创 2017-05-31 10:29:03 · 1237 阅读 · 0 评论 -
BottomNavigationView结合ViewPager搭建流行UI框架
BottomNavigationView是Google推出的底部导航栏组件,在没有这些底部导航组件之前,Android开发者多使用的是RadioGroup,在上一个项目开发中我们使用了Google的BottomNaviationView与ViewPager相结合搭建了UI框架,现项目已经完成,总结如下:使用BottomNaviationView需要添加依赖库:在app moudle 里面的原创 2017-04-18 11:55:57 · 5697 阅读 · 0 评论 -
Android 判断网络类型(WIFI、MOBILE、NONE)
public class NetworkUtil { public static final int TYPE_NONE = -1; public static final int TYPE_MOBILE = 0; public static final int TYPE_WIFI = 1; private NetworkUtil() {} /**原创 2017-05-27 11:17:54 · 7508 阅读 · 0 评论 -
Android studio如何指定使用自己生成的keystore调试
Android studio如何指定使用自己生成的keystore调试原创 2016-12-13 16:42:07 · 8693 阅读 · 0 评论 -
Android studio录屏按钮不能用怎么办
众所周知,Android studio具备录制手机屏幕的功能:上图点击红框中的按钮即可弹出录屏对话框,设置之后便可录制手机屏幕,可我的studio显示却是这样的效果:红框中按钮是灰色的,不可用。设备列表已经被我用青色的框,标记起来了,可以清楚的看到现在连接的是一部华为 honor V8手机(HUAWEI KNT-AL20 Android 6.0 API 23)原创 2017-01-13 22:18:51 · 11877 阅读 · 2 评论 -
Android App 评价/跳转到应用市场
Uri uri = Uri.parse("market://details?id=" + context.getPackageName());Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);try { startActivity(goToMarket);} catch (ActivityNotFoundException转载 2017-02-07 17:26:36 · 1299 阅读 · 0 评论 -
Android Activity 设置全屏
Android Activity 设置全屏的方法如下:1.代码设置:protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //去除标题栏 requestWindowFeature(Window.FEATURE_NO_TI原创 2017-02-15 13:01:05 · 25597 阅读 · 0 评论 -
微信开放平台Android应用签名的本质及如何获取
在微信开放平台创建移动应用时上图大家都遇到过,这里的应用签名是什么呢?这里介绍说可以通过签名生成工具在已安装当前应用的手机中获取,(待会获取测试一下)我们先搞明白它是什么,这里提到了该应用签名由开发者签名该应用的keystore文件决定。接下来我们便来探究一下这个应用签名是什么思路:1.创建一个keystore文件2.创建一个Android应用3.使用keystore文件签原创 2017-03-09 20:19:38 · 85075 阅读 · 13 评论 -
Android应用打开另一个应用程序(只需要包名)
Android打开应用或者是Activity之间的跳转核心代码只有一句!startActivity(intent);如果我们想打开手机里面的短信、联系人、浏览器等系统应用或者是打开微信、钉钉等用户应用也可以通过这一句代码实现!前提是我们得有一个打开应用的Intent对象,幸运的是有一个API可以通过应用的包名得到打开应用的Intent对象。public abstract Intent原创 2017-04-13 22:45:16 · 7018 阅读 · 0 评论 -
Android无线调试
Android开发中经常要连接USB数据线调试应用,有时候数据线不够用、接口松动导致连接不稳定等问题时有发生,下面介绍一种无线调试的发法。先说两个adb命令:adb usb - restarts the adbd daemon listening on USBadb tcpip - restarts the adbd d原创 2017-04-25 13:53:43 · 23425 阅读 · 2 评论 -
Android平台版本-API级别与版本号对照表
平台版本API 级别VERSION_CODE备注Android 7.024N平台亮点Android 6.023M平台亮点Android 5.122LOLLIPOP_MR1平台亮点Android 5.021LOLLIPOP原创 2017-05-13 10:01:09 · 7435 阅读 · 0 评论 -
Android app启动闪屏主题设置
以农行掌上银行为例我们来谈谈应用启动后闪白屏,若干秒之后进入Splash界面(欢迎页面)的问题。其实这种问题不只是农行APP的专利,其它很多APP都有这种问题,默认不对SplashActivity(启动应用的Activity)的主题背景做处理都是白色的,除非为application的主题设置了背景色。可是有很多APP它们启动之后从来没有闪过一下白屏(肉眼分辨不出有闪白屏):支付宝和原创 2017-05-05 23:51:23 · 7944 阅读 · 0 评论 -
自定义Android Toast
Android Toast在开发中经常使用,多用于向用户展示提示信息,只不过系统的Toast有些太单调了,不够美观,下面介绍一种超简单的自定义Toast的方式:在介绍自定义Toast之前,和大家一起看几行系统Toast的源码:public static Toast makeText(Context context, CharSequence text, @Duration int dura原创 2017-05-15 21:29:40 · 2197 阅读 · 2 评论 -
Android 根据路径获取文件名
思路: 利用String 类中的lastIndexOf()方法 , 分别获得"/" 和"."的索引,之后利用截取子串substring(start , end)方法得到文件名。/** * 根据路径获取文件名* @parampath 路径参数* @return文件名字符串*/private String getFileName(String path)原创 2016-10-21 19:35:46 · 5900 阅读 · 0 评论