
Android开发实战
文章平均质量分 77
Android开发中常见的问题解决方案,很多都是亲自走过的坑,结合实际项目经验的产出。文章中都附有源码,拿来即用。
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
Winter_world
专注于物联网智能设备开发,目前已完成的项目涉及:医疗健康、智慧养老、智能家居、工控领域,欢迎有需求的各界大佬来撩!
展开
-
Android——ADB常用命令的使用总结(安装应用、卸载应用、电脑与设备发送文件)
目录1 安装ADB驱动2 ADB常用命令2.1 帮助命令2.2 查找设备命令2.3 登录shell2.4 安装应用2.5 卸载应用2.6 从PC机发送文件到Android设备2.7 从Android设备下载文件到PC机ADB是Android的调试工具,其只能在Android系统下才能使用的,本博文主要总结了ADB的常用几个命令:帮助、查找设备、登录shell、安装应用、卸载应用、从PC机发送文件到Android设备、从Android设备下载文件到PC机。1 安装A原创 2020-11-10 21:00:39 · 907 阅读 · 0 评论 -
Android——ViewPager禁止左右滑动的实现
目录1 背景2 自定义ViewPager实现3 使用方法1 背景用ViewPager+BottomNavigationView+多个Fragment快速搭建的页面切换架构,一个有四个页面,因为测试需要,需要屏蔽掉中间的两个,做法是: 设置不可点击选择:xml布局文件中,BottomNavigationView的app:menu属性为各页的item,将不想显示的页面item的android:enabled属性设置为false,此时对应的页面就无法显示了; 设置BottomN原创 2020-10-30 16:53:08 · 4391 阅读 · 5 评论 -
Android——安装apk升级时出现FileUriExposedException: xxx.apk exposed beyond app through Intent.getData()的解决方法
【问题】:Android APP实现升级apk安装时,会出现这样的错误:android.os.FileUriExposedException: xxx.apk exposed beyond app through Intent.getData()。【原实现代码】:private void installAPK() { String fileName = xxxx; String directory = Environment.getExternalStorage原创 2020-07-07 19:36:41 · 3913 阅读 · 0 评论 -
Android—— 手机返回键到主界面,不关闭APP
【背景】:需要实现类似QQ、微信那样,按手机返回键时不退出APP,而是返回到手机主界面【实现原理】:在主活动中覆写onKeyDown()方法,当检测到返回键被触发时,通过Intent直接进入主界面。【实现代码】: //复写onKeyDown事件,设置返回按钮:不应该退出程序,而是返回桌面 @Override public boolean onKeyDown(in...原创 2020-04-10 16:10:17 · 3027 阅读 · 0 评论 -
Android——MPAndroidChart画图时Y轴刻度重复显示的问题解决
【背景】使用MPAndroidChart画柱状图,当y轴的value值比较小时,Y轴刻度就会出现重复显示的问题,如下:【解决方法】:获取y轴左侧坐标轴YAxis的实例化对象,有一个设置setLabelCount()方法,其可以强制设置y轴显示的文本刻度个数,所以我们在填充数据完毕后根据原默认画的刻度值进行强制调整即可,代码如下: YAxis yAxis = chart....原创 2020-04-10 11:35:10 · 2349 阅读 · 0 评论 -
Android——启动本地QQ,实现与指定的QQ号临时会话
浅谈android如何利用webView调用网页链接来调用QQ临时会话类似QQ客服https://blog.csdn.net/u013064109/article/details/52496502Android 应用跳转到指定QQ临时聊天界面https://blog.csdn.net/zaq977684/article/details/102799017安卓开发—...原创 2020-03-31 22:01:59 · 1163 阅读 · 0 评论 -
Android——RecyclerView自定义OnScrollListener实现下拉刷新监听,上拉加载更多功能
目录【前言】1、OnScrollListener滑动事件监听抽象类2、利用onScrollStateChanged及onScrolled方法实现下拉刷新及上拉加载更多3、使用方法4、利用SwipeRefreshLayout实现下拉刷新效果【前言】针对RecyclerView有很多开源的框架可以直接拿来用,比较有代表性的是BaseRecyclerViewAdapterHe...原创 2020-03-11 19:23:18 · 1777 阅读 · 0 评论 -
Android——MPAndroidChart折线图/柱状图/饼形图的使用
【背景】:项目中需要使用到图表,于是找了目前非常热门的开源图表,折线图/柱状图/饼图等应有尽有,各种效果实现都很给力,附上github链接,有原DEMO,github是最好的老师,看DEMO例程源码,相比在网上泛泛的查资料要高效的多。https://github.com/PhilJay/MPAndroidChart【使用方法】这里会介绍如何初始化、如何自定义XY坐标轴、如何点击折线图中的数...原创 2020-01-12 12:17:14 · 1087 阅读 · 0 评论 -
Android——弹出窗口中实现时间选择,文本输入,遇到Popupwindow不穿透与EditText输入法的矛盾,Dialog中弹出pop的显示层级问题
【需求】:弹出一个非全屏窗口,可以选择时间设置,文本输入; 看似简单确认折腾了一天多时间,下面把实战经历记录如下。【实现思路及方法】:有两种,一种是通过Dialog实现,一种是通过Popupwindow实现,两者的实现思路差别不大,主要是遇到的问题各有千秋。一、通过继承Dialog实现1、编辑界面文件<?xml version="1.0" encoding="utf-8"?...原创 2020-01-03 15:48:01 · 901 阅读 · 0 评论 -
Android——BLE配对绑定实现
蓝牙配对绑定原理不再赘述了,终端的实现可以参照文章后的参考链接,本处主要记录总结下Android端的配对绑定实现过程。1、动态注册系统广播,接收蓝牙配对请求intentFilter = new IntentFilter();intentFilter.addAction("android.bluetooth.device.action.PAIRING_REQUEST");//配对请求b...原创 2019-12-05 16:13:59 · 3426 阅读 · 10 评论 -
【转】Android进阶——多线程系列之wait、notify、sleep、join、yield、synchronized关键字、ReentrantLock锁
转载一篇关于Android线程操作的博文,博主很有心,总结的很到位,记录下来仅用于学习,感谢!1、Thread是个线程,而且有自己的生命周期2、对于线程常用的操作有:wait(等待)、notify(唤醒)、notifyAll、sleep(睡眠)、join(阻塞)、yield(礼让)3、wait、notify、notifyAll都必须在synchronized中执行,否则会抛出异常4、sy...转载 2019-11-29 17:16:25 · 632 阅读 · 0 评论 -
Android——NORDIC nRF5x系列 DFU升级 APP实现
根据NORDIC官方Android-DFU-Library实现,具体步骤如下:1、build.gradle配置implementation 'no.nordicsemi.android:dfu:1.9.0'2、AndroidMainfest.xml中申请BLE的相关权限、读写权限、定位等。 <uses-permission android:name="android...原创 2019-11-14 20:37:32 · 2187 阅读 · 1 评论 -
Android——Hander+Service,实现后台长期周期性定时任务
【背景】:想在后台实现长期周期性定时任务,查找网上一堆资料,AlarmManager 配合 服务 很适合,结果很激动的试了下,测试发现手机息屏后就不工作了,亮屏后可以,但是息屏时间够长 再亮屏也不好使了,网上资料有的说的很有道理,各手机厂家对系统进行了优化,为了降功耗,省电,对AlarmManager做出了限制,息屏休眠后就不能让其继续唤醒工作了(虽然官方资料说明,手机Doze模式下调用setA...原创 2019-11-03 19:28:42 · 1534 阅读 · 0 评论 -
Android——打电话(选择指定手机卡)、发短信
【注意事项】:1、Android6.0以上系统运行时权限;2、AndroidManifest.xml 中添加权限声明3、运行时权限回调需要放在所属的Activity中,否则不会执行回调,参见博客;<uses-permission android:name="android.permission.READ_PHONE_NUMBERS"/>//指定SIM卡拨打...原创 2019-10-31 13:53:08 · 2425 阅读 · 3 评论 -
Android——6.0运行时权限申请,onRequestPermissionsResult回调不执行问题
权限是目前APP必不可少的,这里介绍一下onRequestPermissionsResult回调不执行问题。一,正常使用android 6.0权限:1.检查判断如果应用具有此权限,方法将返回PackageManager.PERMISSION_GRANTED,并且应用可以继续操作。如果应用不具有此权限,方法将返回PERMISSION_DENIED,且应用必须明确向用户要求权限。...转载 2019-10-31 13:47:51 · 6457 阅读 · 0 评论 -
Android——Context全局获取方法
【问题】:在使用Toast、启动活动、发送广播等应用时,都需要Context,在活动中进行这些操作很容易通过getContext方法获取,但是脱离Activity类后,想随时获取Context就比较麻烦,通过参数传递这种方法不够简便。【全局获取Context】:Android有一个Application类,应用程序启动时会自动初始化,基于以上问题,我们自己做一个Application类,便于管...原创 2019-10-30 18:43:38 · 720 阅读 · 0 评论 -
Android——AlertDialog提示对话框的使用
【作用】:AlertDialog可以在当前界面弹出一个对话框,置于所有界面之上,可以用于提示重要内容或者警告信息,比如关键开关的关闭,重要内容的删除等操作时,加入此控件提示用户谨慎操作;【代码示例】:AlertDialog.Builder dialog = new AlertDialog.Builder(mainActivity); dialog.setTitle("温馨...原创 2019-10-29 16:52:55 · 513 阅读 · 0 评论 -
Android——ScrollView的使用,屏幕显示不下时,出现滑动显示效果
【使用说明】布局文件的根布局使用ScrollView,垂直滚动,HorizontalScrollView为水平滚动的,需要注意的是,ScrollView的子元素只能有一个,所以得增加一个LinearLayout布局,把其他控件放在LinearLayout中。【代码示例】<?xml version="1.0" encoding="utf-8"?><ScrollView ...原创 2019-10-28 21:21:02 · 920 阅读 · 0 评论 -
Android——Java与C++的异同点总结
转自:https://blog.csdn.net/SHENNONGZHAIZHU/article/details/51897060Java与C++都是面向对象的语言,都使用了面向对象的思想(封装、继承、多态),由于面向对象由许多非常好的特性(继承、组合等),因此二者有很好的可重用性。主要不同点:1、Java为解释性语言,其运行过程为:程序源代码经过Java编译器编译成字节码,然后由JV...转载 2019-09-30 15:04:31 · 626 阅读 · 0 评论 -
Android——《Android第一行代码》10.6节服务的最佳实践,应用8.0以上Android系统需要修改的地方
【背景】:参照书籍写的代码,辛苦写完,分析完原理,运行起来确有很多,解决这些问题,查了大量的资料,走了很多弯路,最后仅通过一个基本知识点解决,写在这里,记录下来,后来者参考了,少走些弯路。【问题】:先从遇到的问题说起1、程序运行,直接闪退。——Android 8.0以上系统使用通知,需要添加渠道,详见另一篇博文。2、刚运行,没有操作别的,就出现异常卡死问题,再次打开APP,开始下载...原创 2019-08-26 20:19:59 · 1054 阅读 · 9 评论 -
Android——Apache安装方法及在同一个局域网下手机无法访问时的解决办法
《Android第一行代码》中,9.3节 解析XML格式数据涉及到了Apache web服务器的安装,书中的版本比较老,是2.2.9,目前https://www.apachehaus.com/cgi-bin/download.plx下载的最新版本是2.4.41,一般都没有图形化的安装界面,安装过程遇到了一堆坑,网上也找了一些方法,现将安装过程分享下。1、下载解压后放在某个文件路径下,进入文件...原创 2019-08-22 20:03:29 · 1292 阅读 · 0 评论 -
Android——WebView加载失败,提示net::ERR_CLEARTEXT_NOT_PERMITTED
参照《Android第一行代码》,使用WebView控件,结构无法加载网页提示如下错误,参照转文链接的博主解决,我用的是方法三,感谢这位兄弟,引用,仅学习记录。【异常原因】:从Android 9.0(API级别28)开始,默认情况下限制了明文流量的网络请求,对未加密流量不再信任,直接放弃请求,因此http的url均无法在webview中加载,https 不受影响。【解决方法】:首先保...转载 2019-08-22 15:16:23 · 4624 阅读 · 0 评论 -
Android——《Android第一行代码》中使用通知 方法,Android8.0系统NotificationCompat.builder()方法的使用及引导用户开启通知
1、该书中使用的Android版本较老,8.0以下,没有渠道这一说法,所以使用的高版本Android系统,需要进行适配,即判断本机系统是否在8.0以上,是的话,添加渠道,方法如下:public class MainActivity extends AppCompatActivity implements View.OnClickListener{ @Override pro...原创 2019-08-22 12:22:50 · 2399 阅读 · 11 评论 -
Android——Android Studio开发环境搭建及设置本地Gradle方法
【下载软件】:根据操作系统选择对应软件下载1、JDK下载:java编译器https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html?ssSourceSiteId=otncn2、Android Studio下载http://www.android-studio.o...原创 2019-06-17 21:17:35 · 7073 阅读 · 0 评论