- 博客(47)
- 资源 (31)
- 收藏
- 关注
原创 MVVM的使用
MVVM把传统的布局替换为dataBinding布局:在外层布局按住Ctrl+回车会提示是否转化成dataBinding布局,直接转化:替换setContentView:经过上述步骤,系统会自动生成ActivityMainBinding类,类名是布局文件名+Binding,布局文件首字母大写...
2022-03-25 20:11:33
6711
1
原创 charles抓包
一、前言 在移动端开发的时候通常需要获取后端返回的数据, 打日志和调试也可以,只是比较麻烦,通过charles抓包可以很方便的看到后端返回来的数据格式二、抓取Http报文1、下载安装charles 进入官网:https://www.charlesproxy.com/download/ ,找到自己系统合适的版本,点击下载, 然后安装, 直接下一步,直到完成。2、...
2020-12-09 16:59:48
1875
原创 详解Service以及Service进程间通信
1 Service起步 1.1 Service的生命周期1.2 绑定Activity和Service 1.3 在BroadcastReceiver中启动Service2 什么事AIDL2.1 跨进程2.2 什么是AIDL服务2.3 建立AIDL的三个步骤3 小结
2020-12-09 16:56:08
2252
原创 AndroidAutoSize使用简介
一、简介今日头条屏幕适配方案终极版,一个极低成本的 Android 屏幕适配方案,项目地址:https://github.com/JessYanCoding/AndroidAutoSize由于此方法是一刀切来适配,所有界面以dp为单位的都会受影响,因此一定要做好防护。二、使用1、集成// 集成implementation 'me.jessyan:autosize:1.2.1...
2020-04-08 18:50:53
16176
原创 Android实现VR查看图片
前言: 最近没事逛懂车帝, 发现有VR全景图片看车这个功能, 于是查资料,自己也写一个。方法一:利用谷歌提供的vr库1、依赖vr库implementation 'com.google.vr:sdk-panowidget:1.80.0'2、布局文件<?xml version="1.0" encoding="utf-8"?><Relati...
2019-09-23 11:26:21
2504
2
原创 Android调用webservice接口
前言:WebService是一种基于SOAP协议的远程调用标准,通过webservice可以将不同操作系统平台、不同语言、不同技术整合到一块。在Android SDK中并没有提供调用WebService的库,因此,需要使用第三方的SDK来调用WebService。Android中ksoap2是WebService常用的sdk。一、使用方法1、工具类封装package com.dj...
2019-08-05 18:02:31
607
转载 ABridge进程间通信介绍
GitHub地址:https://github.com/yifei8/ABridge一、IPC是 Inter-Process Communication的缩写,意为进程间通信或跨进程通信,是指两个进程之间进行数据交换的过程。线程是CPU调度的最小单元,同时线程是一种有限的系统资源。进程一般指一个执行单元,在PC和移动设备上指一个程序或者一个应用。一个进程可以包含多个线程,因此进程和线程是包...
2019-08-02 16:52:52
931
原创 Flutter界面pop黑屏问题
今天在写flutter的demo时调用pop结果黑屏了,原因在于我们使用Navigator.pop(context);时,此时的context并不是当前页面 Build时的context,而是上个界面的context,这样导致我们pop的时候,实际上并不是当前页面,而是关闭了上个界面,所以,出现了黑屏的问题。如下修改代码:import 'package:flutter/material.da...
2019-07-20 15:36:43
5246
原创 RecyclerView实现复杂多类型布局,再也不用嵌套了
1、RecyclerView 控件通过 setLayoutManager() 方法来设置布局管理器,这个布局管理器分三种 LinearLayoutManager、GridLayoutManager、StaggeredGridLayoutManagerspanCount:在创建 GridLayoutManager 对象的时候构造方法需要传入这个参数,也就是设置每行排列 item 个数。spa...
2019-07-09 22:26:19
9170
10
原创 Flutter开发常见问题收集
1、引用第三方库下载不下来:报这个错误Waiting for another flutter command to release the startup lock解决方案:1、关闭Android Studio,然后找到flutter sdk的安装目录,打开flutter sdk的安装目录/bin/cache/2、删除lockfile文件3、重新打开AndroidStudio...
2019-06-25 10:20:26
239
原创 Dart快速入门
前言: 最近学习flutter,发现怎么都绕不过dart, 于是就学习了一下dart,在此做个总结,本章节只讲跟Java不同的地方, 相同的地方一笔带过。1、变量定义main() { // 基本类型 var a = 10; // 可变类型,和JavaScript里面一样, 类型会自动转换 var aa = "aaaaaa"; var a...
2019-06-22 17:55:30
1026
原创 Android USB串口传输数据
前言: 之前介绍了485串口传输数据,使用了https://github.com/cepr/android-serialport-api,本节课我们介绍usb串口数据传输。使用usb串口传输数据的第三方库:https://github.com/mik3y/usb-serial-for-android一、集成1、首先我们下载下来demo,然后找到里面的usbSerialForA...
2019-06-21 20:02:56
8599
3
原创 Android 线程池的使用
一:使用线程池的原因在android开发中经常会使用多线程异步来处理相关任务,而如果用传统的newThread来创建一个子线程进行处理,会造成一些严重的问题:1:在任务众多的情况下,系统要为每一个任务创建一个线程,而任务执行完毕后会销毁每一个线程,所以会造成线程频繁地创建与销毁。2:多个线程频繁地创建会占用大量的资源,并且在资源竞争的时候就容易出现问题,同时这么多的线程缺乏一个统一的管...
2019-06-03 09:51:17
315
原创 Android手机底部NavigationBar挡住界面的解决方法
一、前言底部NavigationBar经常会挡住界面,有时候NavigationBar出来界面会自动resize在他的上面, 有时候却被它挡在下面,今天来看一下具体的解决方案二、适配1、判断手机是否有NavigationBarprivate boolean checkDeviceHasNavigationBar(Context context) { boolea...
2019-05-31 16:47:26
7608
转载 光线传感器工具类,和仿微信扫一扫预览条码放大和光线检测
一、在Android开发中,有时我们需要获知设备所在环境的光线强弱情况,当然这需要我们设备拥有光线传感器下面是我简单封装的一个光线传感器管理类,主要提供了3个方法:1.start():启动,在获取光照强度前调用。2.stop():停止,在不再需要获取光照强度后调用。3.getLux():获取光照强度,单位为勒克斯(lux)。如果你需要额外的一些方法,可以根据返回的光照强度自行添...
2019-05-27 09:36:38
482
1
原创 使用SourceTree克隆和提交码云上的代码
一、前言代码往GitHub上上传的时候,如果工程比较大,经常会上传很慢,有时候经常克隆失败,码云因为是在国内,所以没有限制,会快很多,而且私有库是免费的, 虽然有大小限制, 但是已经完全够我们用了,而且可以把GitHub上的库直接同步过来。码云操作跟GitHub差不多,这里就不多做解释,今天就来看看如何用SourceTree来克隆和提交码云上的代码。二、创建和添加ssh公钥工程创建好以...
2019-05-24 17:01:09
2680
原创 热修复框架tinker的使用简介
一、说明Tinker 是一个开源项目(Github链接),它是微信官方的 Android 热补丁解决方案,它支持动态下发代码、So 库以及资源,让应用能够在不需要重新安装的情况下实现更新,当前市面的热补丁方案有很多,其中比较出名的有阿里的 AndFix、美团的 Robust 以及 QZone 的超级补丁方案。但它们都存在无法解决的问题,这也是正是我推出 Tinker 的原因,这是官方的文档:h...
2019-04-26 16:50:29
885
原创 Android7.0 FileProvider
一、前言Android 7.0有很多的变化,和我们开发者关联最大的,或者说必须要适配的就是去除项目中传递 file:// 类似格式的 Uri 了。要应用间共享文件,您应发送一项 content:// URI,并授予 URI 临时访问权限。进行此授权的最简单方式是使用 FileProvider 类,FileProvider 实际上是 ContentProvider 的一个子类,它的作用也...
2019-04-25 14:32:15
320
原创 Android 支付总结
一、银联支付首先去银联开放平台下载sdk到开放平台点击“手机支付控件”, 然后下载sdk,里面资料很详细:进入“app开发包”目录,里面有个“中国银联手机支付控件介入指南Android.pdf”,里面详细的介绍了集成过程。集成过程见文档, 这里说一下最基本的用法:1、首先请求接口从服务端获取tn(交易流水号)2、调UPPayAssistEx.startPay(a...
2019-03-27 17:16:00
293
原创 android中JsBrage的使用
前言:项目中经常用到h5和原生交互的情形, 在这里介绍一个非常好用的第三方库JsBrage,先附上GitHub链接:https://github.com/lzyzsd/JsBridge与JS交互有两种方式:1、h5调用我们原生代码,然后原生可以给他反馈2、原生调h5代码,然后h5处理完之后给原生反馈。一、引用在项目的build.gradle里(这个之前讲过,直接引用GitHub...
2019-03-19 14:30:45
1990
原创 Java中反射详解
1、类对象的概念所有的类,都存在一个类对象,这个类对象用于提供类本身的信息,比如有几种构造方法,有多少属性,有哪些普通方法。2、获取类对象获取类对象有3种方式(比如有个对象叫Hero)(1)Class.forName(2)Hero.class(3)new Hero().getClass()package reflection; import charactor.Hero...
2019-02-16 10:08:13
385
原创 Android中Java-WebSocket简介
最近项目中用到长连接,使用的是Java-WebSocket,因此记录一下GitHub地址:https://github.com/TooTallNate/Java-WebSocket到GitHub中查看最新的版本,然后引用, 因此这里就不讲如何引用了,只讲用法:public class SocketService extends Service { @Nullable ...
2019-02-11 17:10:25
5168
原创 Android串口通信
一、库的引用前言Android设备上使用串口谷歌在github上已经提供了例子,里面有jni的代码和串口api,具体工程地址如下:https://github.com/cepr/android-serialport-api,官方给的sdk是eclipse工程,因此我们不能直接使用,我们需要把里面的SerialPort.c和SerialPort.h复制出来,放到我们Android Stud...
2019-01-28 20:38:05
1133
原创 Android中Handler介绍
一、Android Handler、Loop的简单使用1、请看例子public class MainActivity extends AppCompatActivity { private Handler handler1 ; private Handler handler2 ; @Override protected void onCreate(...
2019-01-23 14:31:12
176
原创 ConstraintLayout 完全解析
1、前言ConstraintLayout刚出来的时候就关注了,只是学习了一下,一直没有记录,今天突然想用一下,但是好多要注意的点都想不起来了,就只能重新看一遍, 在此记录一下2、layout_constraint[本源]_[目标]="[目标ID]"app:layout_constraintBottom_toBottomOf="parent" // 底部与父控件底部对其app:lay...
2019-01-20 17:10:15
279
原创 Android中wifi开发总结
一、开发中所需要的权限<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/><uses-permission android:n...
2019-01-18 11:25:11
1485
原创 AndroidStudio统计项目中的代码行数
前言: 公司项目在申请软件著作权或者其他用处的时候需要统计工程中的代码行数,那么多代码不可能一个一个文件进去看吧,Android Studio有专门的插件来看详细的代码信息1、安装插件Statistic 这里我是已经安装好了,所以大家看到的是uninstall,如果没有安装的话会显示install,点击安装后重启Android Studio就安装好了2、设置查看我们自己写的代码的行...
2019-01-17 15:04:40
7695
2
原创 Android 初识NFC以及简单的使用第二节
前言:上一节讲了Android中NFC的一些概念和基本知识,以及NFC传输数据的格式,最后讲了举了一个给NFC标签中写入微信包名,然后通过用标签靠近手机自动打开微信的功能,本节将继续强化NFC的概念以及更深层次的理解,最后附上上一节的链接:https://blog.csdn.net/helloworld19870427/article/details/86020306一、NFC基础1、从N...
2019-01-08 16:21:40
463
原创 Android 初识NFC以及简单的使用第一节
一、NFC1、三种模式(1)读卡器模式 主动 就是通过手机从带有NFC芯片的设备中读和写数据(2)仿真卡模式 被动 将支持NFC的手机或其他电子设备当成借记卡、信用卡、公交卡、门禁卡等IC卡使用,手机是被动, NFC射频器主动读(3)点对点模式 p2p mode 主动用于不同NFC设备之间进行数据交换,只是NFC的点...
2019-01-07 20:38:02
471
原创 Android 小知识点记录
一、adb启动activity、service、发广播1、adb启动activity:$ adb shell$ am start -n {包(package)名}/{包名}.{活动(activity)名称}如:启动浏览器# am start -n com.android.browser/com.android.browser.BrowserActivity2、adb启动ser...
2019-01-04 17:10:18
306
原创 android studio 进行ndk/jni开发
一、前言:之前用eclipse开发ndk的时候大家是不是很痛苦,要做的事情很多: //NDK开发流程: 1、在java代码中 声明本地方法(native) 2、通过javah工具完成jni样式的头文件(.h文件)的生成 3、在工程中 创建jni目录,在jni目录中编写 与java本地方法对应的C方法 jstring Java_包名_类名...
2019-01-03 14:09:14
606
原创 在Application中监听Activity们的生命周期
通常我们监听Activity的声明周期都是在每个Activity中重写声明周期函数,这里介绍一种方法统一在Application中监听Activity的声明周期:public class MyApplication extends Application { //声明一个监听Activity们生命周期的接口 private ActivityLifecycleCallbacks ...
2018-12-27 18:54:52
1386
转载 Android P版本使用veridex工具扫描非 SDK 接口
在 Android P 版本中,谷歌加入了非 SDK 接口使用限制,无论是通过调用、反射还是JNI等方式,开发者都无法对非 SDK 接口进行访问,此接口的滥用将会带来严重的系统兼容性问题。 在开发过程中,开发者如果调用了非 SDK 接口,会导致应用出现crash,无法启动;或在运行过程中出现崩溃、闪退等现象;也可能导致应用功能不可用等严重兼容性问题,其影响范围波及所有调用此接口的应用;1:那...
2018-12-27 16:51:29
649
转载 Android Instant Run介绍
Instant Run直译为及时运行,就修改的代码可以直接体现出来,不需要重新编译;默认在Android Studio2.0以上自动集成Instant Run功能使用 Android Plugin for Gradle 版本 2.0.0 或更高版本,以及在应用的模块级别 build.gradle 文件中将 minSdkVersion 设置为 15 或以上时,Instant Run 才受支持。为获...
2018-12-27 16:02:02
954
原创 用activity-alias实现节日时替换icon
activity-alias标签元素AndroidManifest是一个xml文件,它包含很多标签元素,如application、activity、receiver等,其中有一个叫做activity-alias,该标签平时很少用到,可是这个功能却很常见。activity-alias,顾名思义,即activity的别名。看到这里,大家会想那它究竟是哪个Activity的别名呢?我们在创建一个A...
2018-12-19 11:09:25
653
原创 Android 通过scheme链接打开本地应用
前言:最近做一个在桌面添加快捷方式的功能,用普通常规的添加快捷方式大多数手机都创建不出来, 尤其是像小米这种只有一层的桌面,因此采取了apk式快捷方式,顾名思义就是在桌面安装一个apk来做为快捷方式, 当点击快捷方式(apk)的时候直接打开主应用的相应界面。1、方式一,用Intent来启动主应用对应界面,设置包名以及要打开的界面的全路径,还要在配置文件中设置此界面exported=true:...
2018-11-26 19:44:59
5112
原创 apk反编译
apktool 作用:资源文件的获取,可以提取出图片文件和布局文件进行查看dex2jar 作用:将apk反编译成java源码(classes.dex转化成jar文件)jd-gui 作用:查看APK中的classes.dex转化成的jar文件,即源码文件apktool的下载地址:https://ibotpeaches.github.io/Apktool/d...
2018-11-22 18:54:38
102
转载 Android 深入理解Android中的自定义属性
1、引言对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现:自定义一个CustomView(extends View )类编写values/attrs.xml,在其中编写styleable和item等标签元素在布局文件中CustomView使用自定义的属性(注意namespace)在CustomView的构造方法中通过TypedArray获取ps:如果你对上述几个步骤不熟悉,...
2018-11-15 13:56:21
127
原创 Android踩过的坑
一、版本升级// 8.0以上系统调用安装应用public void startInstallApk(String apkName) { if (Build.VERSION.SDK_INT >= 26) { boolean hasInstallPermission = getPackageManager().canRequestPackageInstalls()...
2018-11-13 19:15:05
319
原创 Android-使用Nexus搭建私有Maven仓库
一、先看一些概念1、Maven仓库分类从Maven的依赖下载管理角度来看, Maven仓库分为远程仓库和本地仓库,远程仓库的使用需要添加仓库地址才能正常连接下载依赖。Maven的远程仓库分为中央仓库和私服仓库,中央仓库存放了世界各地上传的依赖包,比较出名的是Jcenter和MavenCentral,开源的第三方依赖一般都会上传到这两个中央仓库,这样我们只要添加这两个中央仓库的链接地址,就可...
2018-10-26 16:37:51
1414
自己总结的server教程和Oracle笔记
2010-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人