自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李国庆的技术博客

Android,Linux,Java

  • 博客(14)
  • 收藏
  • 关注

原创 Go和Android集成使用总结

Go和Android集成使用总结前期准备思路:Go 交叉编译为 Android 平台支持的 so 文件。在 Android 中使用 JNA 调用该 so 文件。依赖:GoNDK r20JNA 5.4.0编写 Go 测试代码编写 speedtester 的核心代码,实现对任意网站访问速度的检测:package speedtesterimport ( "net/http" "time")func Perform(url string) (int, error) {

2020-11-04 15:20:02 1708 1

原创 Go语言之Channel

Channel1. 声明channel 类型var ch1 chan intvar ch2 chan boolvar ch3 chan []int2. 创建channel通道是引用类型,通道类型的空值是nil。var ch chan intfmt.Println(ch) // <nil>声明的通道后需要使用make函数初始化之后才能使用。创建channel的格式如下:channel的缓冲大小是可选的。ch4 := make(chan int)ch5 := make(

2020-10-13 16:27:13 284

原创 Go语言之文件操作

文件操作1. 创建文件目录//创建目录err = os.Mkdir(mainTitle, 777)//创建多级目录err = os.MkdirAll("test/"+mainTitle+“/test2”, 777)//获取工作路径pwd, err := os.Getwd()//更改工作路径到此目录os.Chdir(pwd + "/" + "test/" + mainTitle)Mkdir 用于创建单个目录。err:=os.Mkdir("./dir1",os.ModePerm)i

2020-10-13 16:22:10 280

原创 Go语言变量学习

Go语言变量学习1. 简单类型空值:nil整型类型: int(取决于操作系统), int8, int16, int32, int64, uint8, uint16, …浮点数类型:float32, float64字节类型:byte (等价于uint8)字符串类型:string布尔值类型:boolean,(true 或 false)ddvar a int8 = 10var c1 byte = 'a'var b float32 = 12.2var msg = "Hello World"

2020-10-13 16:18:21 79

原创 Android 覆盖安装会同时发送remove和replace的解决方案

Android 覆盖安装会同时发送remove和replace的解决方案监听系统广播时,覆盖安装的时候会发remove和replace两种intent,这样会导致功能异常,解决方案如下两种:Intent.EXTRA_REPLACINGif (intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED)) { String packageName = intent.getData().getSchemeSpecificPar

2020-07-27 14:24:42 599

原创 Android 使用Google官方组件搭建 MVVM架构

Android 使用Google官方组件搭建 MVVM架构概述MVVM架构在MVP结构上,将Presenter改为ViewModel,使用ViewModel与View进行(DataBinding—>双向?)绑定,当ViewModel的数据发生更改,自动反映到View中显示;反之,当View对数据更改时,ViewModel的数据也会随之变化。View: 对应于Activity和...

2019-12-02 10:09:27 2140 1

原创 RxJava2初探

RxJava2之观察者模式观察者(Observer)模式初探是对象的行为模式,即发布-订阅者(Publish/Subscribe)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主体对象在状态上发生变化时,会通知所有观察者对象,能使他们自动更新自己。角色抽象主题(Subject)存在形式:**抽象类(推荐)**或者接口增加和删除观察者...

2019-04-27 23:31:48 96

原创 Android O(8.0)通知渠道 更新使用总结

Android O(8.0)通知渠道 更新使用总结升级到Android 8.1后,使用前台服务时,调用startForeground()失败,错误信息:android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for...

2019-04-10 19:35:08 645

原创 Android9.0 http明文

问题概述AndroidStudio将targetSDK升为28后,http请求会无反应,查看logcat中,OkHttp抛出错误。OkHttp3 做了检查,所以如果使用了明文流量,默认情况下,在 Android P 版本 OkHttp3 就抛出异常: CLEARTEXT communication to " + host + " not permitted by network securit...

2019-02-05 23:10:03 16967 3

转载 王垠-如何掌握所有的程序语言

如何掌握所有的程序语言对的,我这里要讲的不是如何掌握一种程序语言,而是所有的……很多编程初学者至今还在给我写信请教,问我该学习什么程序语言,怎么学习。由于我知道如何掌握“所有”的程序语言,总是感觉这种该学“一种”什么语言的问题比较低级,所以一直没来得及回复他们 :P 可是逐渐的,我发现原来不只是小白们有这个问题,就连美国大公司的很多资深工程师,其实也没搞明白。今天我有动力了,想来统一回...

2019-01-30 19:45:01 318

原创 Android APK文件瘦身实战

概述--写在前面    AndroidStudio打包生成的APK越大,在下载安装过程中,用户耗费的流量会越多,安装等待时间也会越长;用户粘性越低,会使用户觉得APP很臃肿。APK文件分析  在AndroidStudio工具栏里,打开build--&gt;Analyze APK, 选择要分析的APK包,如下图:  资源文件说明如下:lib文件夹:lib/:包含特定处理器...

2019-01-28 21:42:29 212

原创 Android Studio之导入gihub开源项目

List item@TOC在这里插入代码片欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博...

2019-01-28 20:17:33 250

原创 Android Studio之WIFI调试程序---ADB

关于ADB在开发调试Android程序时我们需要通过adb工具在我们的手机和电脑之间建立连接,通常情况我们都是使用数据线,其实adb还提供了另外一种方式通过tcpip建立连接。adb简介Android Debug Bridge (adb)安卓调试桥,用来管理模拟器或设备。它采用的是C/S模式,主要包括三个部分:A client 客户端Client运行在自己的电脑上,可以通过adb命...

2018-07-22 13:12:52 372

原创 CentOS下安装git客户端及nodejs

yum安装gityum install -y git查看系统是否已经成功安装gitgit --version配置本机git 配置本机的身份,这样提交代码时候Git就知道是谁提交的了git config --global user.name "leeranzhi"git config --global user.email "[email protected]"...

2018-07-07 12:51:35 1169

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除