自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(131)
  • 资源 (13)
  • 收藏
  • 关注

原创 Google Pixel7 Pro手机登录账号无法触发密码自动填充确认对话框

如果在应用中已正确设置了输入框属性:android:autofillhints和importantAutofill属性,但始终无法在Goole手机中弹出存储账户密码提示框,那么就需要检查是否开启了自动填充功能,以及应用是否已被加入拒绝名单中,按如下步骤进行检查。第一步:登录google账号,开启密码自动填充功能,之所以要登录google账号,是因为账号密码是google账号关联的,不登陆是使用不了自动存储功能的。

2024-05-10 17:59:51 159

原创 Centos7多网卡配置网络

其中NM_CONTROLLED=no表示NetworkManager不能更改这个配置,ONBOOT=yes表示开机启动,如果不用这个网卡,设置成ONBOOT=no, 我这里设置的静态IP取获方式,也可以设置dhcp模式,但是需要dhcp服务。然后重启服务: systemctl restart network,就发现resolv.conf的内容变成了你配置的内容了,这个文件不能手动修改,应为每次重启服务会被重置。如果不是作为软路由使用,需关闭路由转发功能:vi /etc/sysctl.conf。

2023-04-20 12:09:48 1091

原创 Centos实现软路由

带着需求去华强北找符合这样设备,华强北给的方案是爱快软路由+centos虚拟机,满足了服务器和路由器功能,但是没法使用学校分配的ip直接访问服务器,centos虚拟机是装在爱快路由系统上的,没法融入到学校局域网中,没办法,我只好重装系统,直接装centos然后,再配置软路由,这样的话,学校ip实际上就直接分配给了服务器,也就可以直接通过ip访问服务器了,然后通过配置软路由实现路由转发功能。下图配置连接外网的网卡:网卡名称 enp3s0, 固定ipv4地址、网关、dns,下图中的 [X]表示选中。

2022-12-15 11:02:07 3984 2

原创 Flutter中Provider的一般用法(二)

在上篇文章中,已经对Provider的用法有了一定了解,下面在看下context.read<T>() 和context.watch<T>()的用法,为什么可以直接用context获取呢,BuildContext有两个拓展实现ReadContext, WatchContext:extension ReadContext on BuildContext { T read<T>() { return Provider.of<T>(this, lis

2021-04-08 13:42:04 1126

原创 Flutter中Provider的一般用法(一)

在flutter中Provider是比较常用的Widget, Provider通常用来管理value的生命周期,通过Create和Dispose,它们是成对出现的,可以在Create进行value的初始化操作,在dispose进行value的释放操作。使用Provider可以避免一些琐碎的操作,比如实例化一个BLoC操作,事实上,Provider等效于状态管理类State.initState和State.dispose的组合,Create只会在State.initState中调用一次。我们不能直接使用Inh

2021-04-07 17:43:51 2776

原创 Flutter使用GridView长按拖动排序、分类

最近在实现一个书架需求:可以拖动排序和书籍分类,效果如下方视频所示Flutter使用gridview实现长按拖动排序、分类#

2021-02-23 16:42:21 1760 4

原创 ffmpeg常用命令

查看输入文件信息ffprobe -v info -hide_banner -i Downloads/418424037.mp4 flutterFFmpeg.execute('-i $videoPath -vf scale=$targetWidth:$targetHeight $outputPath'); flutterFFmpeg.execute('-i \'$videoPath\' -s ${targetWidth}x$targetHeight -preset fast $outpu...

2020-12-29 14:32:25 443

原创 浅谈Flutter跨平台调用方式MethodChannel

Flutter是目前非常流行的跨平台方案,由于它的性能接近于原生应用,因而被越来越多的开发者所采用。既然是跨平台方案,那么久必然存在调用系统功能的需求,在Flutter中,Flutter层与native层的互调,是通过MethodChannel来实现的。下面来简单的分析下Android端调用Flutter的过程。MethodChannel channel = new MethodChannel(messenger, CHANNEL_NAME , StandardMethodCodec.INSTANCE

2020-10-21 17:23:31 1500

转载 Flutter 画面渲染的全面解析

本篇将通过不一样的角度来介绍 Flutter Framework 的整体渲染原理,深入剖析 Flutter 中构成 Layer 后的绘制流程,让开发者对 Flutter 的渲染原理和实现逻辑有更清晰的认知。Layer 相关的回顾先回顾下,我们知道在 Flutter 中的控件会经历Widget->Element->RenderObject->Layer这样的变化过程,而其中Layer的组成由RenderObject中的isRepaintBoundary标志...

2020-08-13 13:59:37 1703

转载 CentOS 7 升级gcc/g++编译器

gcc的升级必须要使用源码进行升级,也就说,必须要使用源码进行编译才行。我的7.2的CentOS目前自带的gcc是4.8.5的,gcc从4.8之后开始支持C++11,但是鉴于现在C++14、C++17都已经出来了,所以还是把编译器升级一下,才能紧跟发展,尝试使用14/17的新特性。gcc源码下载地址:https://gcc.gnu.org/。  第一步:下载源代码 查了资料步骤上多了几个,重做一下:  首先:yum -y install texinfo  如果不执行这个命令的话,那

2020-07-28 14:06:34 2258

原创 Android的消息机制概述

提到消息机制应该都不陌生,在日常开发过程中不可避免的会涉及到这方面的内容。从开发的角度来说,Handler是Android消息机制的上层接口,这使得只需要和Handler交互即可,通过Handler可以将一个任务切换到Handler所在线程中去执行。Handler最常用的场景就是更新UI。Handler运行的需要底层的MessageQueue和Looper的支撑。MessageQueue是消息队列,其内部存储了一组消息,以队列的形式对外提供插入和删除的工作。虽然是消息队列,但是它的内存并不是真正的队列,

2020-07-17 11:06:40 152

原创 Android中的线程池

在开发过程中经常会用到线程池,那么线程池有什么好吃呢?总结为一下三点:重用线程池中的线程,避免因为线程池的创建和销毁所带来的性能开销。 能有效控制线程池的最大并发数,避免大量的线程之间因相互抢占系统资源而导致的阻塞现象。 能够对线程进行简单的管理,并提供定时执行以及指定间隔循环执行等功能。Android中的线程池概念来源于java中的Executor,Executor是一个接口,在android中的具体实现是ThreadPoolExecutor,它提供了一系列参数来配置线程池,通过不同的参数可以创

2020-07-16 14:30:58 186 1

原创 IntentService详解

IntentService是一种特殊的Service,它继承了Service并且它是一个抽象类,因此必须创建它的子类才能使用IntentService。IntentService可用于执行后台耗时任务,当任务执行后它会自动停止,同时由于IntentService是服务的原因,这导致它的优先级比单纯的线程要高很多,所以IntentService比较适合执行一些高优先级的后台任务,因为它优先级高不容易被系统杀死。在实现上,IntentService封装了Handler和HandlerThread,这一点可用从o

2020-07-16 10:09:53 332

原创 HandlerThread详解

在Android中实现多线程的方式有很多种,常用的有AsyncTask、HandlerThread和IntentService。AsyncTask在上篇文章中已经介绍过,本篇主要分析HandlerThread的实现原理。HandlerThread本身继承了Thread,它的实现要也很简单,就是在run方法中通过Looper.prepare()来创建消息队列,并通过Looper.loop()来开启消息循环,这样在实际的使用过程中就允许在HandlerThread中创建Handler。@Override

2020-07-15 22:15:49 407

原创 AsyncTask详解

在Android中有多种实现多线程的方式,比如AsyncTask、HandlerThread、IntentService等,其实从本质上讲,它们都是对传统线程Thread的封装。AsyncTask是一种轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和结果传递给主线程并在主线程中更新UI。从实现上讲,AsyncTask封装了Thread和Handler,通过AsyncTask可以更加方便地执行后台任务以及在主线程中访问UI,但是AsyncTask并不适合进行特别耗时的后台任务,对特别耗时的

2020-07-15 17:58:34 1652

转载 Java线程中sleep()、wait()和notify()、suspend()和resume()、yield()、join()、interupt()的用法和区别

从操作系统的角度讲,os会维护一个ready queue(就绪的线程对列)。并在某一时刻CPU只为ready queue中位于队列头部的线程服务。但是当前正在被服务的线程可能觉得cpu的服务质量不够好,于是提前退出,这就是yield。或者当前被服务的线程需要睡一会,醒来后继续被服务,这就是sleep。线程退出最好自己实现,在运行状态中一直校验一个状态,如果这个状态为真,就一直运行,如果外界改变了这个状态变量,那么线程就停止运行。sleep使当前线程进入停滞状态,所以执行sleep的线程在指定的时间内肯定不会

2020-07-15 15:05:11 478

转载 Activity/View状态保存和恢复 onSaveInstanceState()和onRestoreInstanceState()

Activity/View onSaveInstanceState和onRestoreInstanceState触发的时机/必要条件1:先看Application Fundamentals上的一段话:Android calls onSaveInstanceState() before the activity becomes vulnerable to being destroyed by the system, but does not bother calling it when the i..

2020-06-03 17:54:57 338

原创 Activity生命周期

回顾一下Activity的生命周期执行流程,先上个基本流程图上图展现的是一个Activity正常的生命周期和异常情况下的生命周期(比如Configuration变化,系统回收导致的activity销毁等)。除此之外,需要注意两个Activity切换过程中,两个Activity生命周期的执行顺序。如上图所示,创建两个Activity,分别是ActivityFirst、ActivityLifeCycle. 那么ActivityLifeCycle跳转到ActivityFirst,两个Acti.

2020-06-03 16:39:44 199

原创 在模拟器上运行flutter app抛出Could not update files on device: HttpException异常

在mumu模拟器上运行flutter app,启动的时候闪退,日志如下:I/OpenGLRenderer( 9665): Initialized EGL, version 1.4D/ ( 9665): HostConnection::get() New Host Connection established 0xa0642dc0, tid 9708D/ ( 96...

2019-12-07 17:30:26 4002 1

原创 Cookie和Session的区别

1.存储位置cookie存储在浏览器临时文件夹中,以明文方式存储,可以隐私信息加密存储,为多个用户共享seesion存储在服务器内存中,一个session域对象,为一个用户浏览器服务2.安全性cookie是以明文方式存储,存放在客户端中,安全性弱,可以通过加密再存放session是存放在服务端内从中,安全性较好3.网络传输量cookie会传递信息给服务器sessio...

2019-05-18 19:46:58 972

原创 获取手机号码

方式一://获取手机号码  TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);  String deviceid = tm.getDeviceId();//获取智能设备唯一编号  String te1  = tm.getLine1Number();//获取...

2018-10-15 10:25:47 5071 12

原创 IOS蓝牙重连

如果是mfi过的的蓝牙设备  蓝牙回到可连接范围手机系统蓝牙会自动连接  你app  直接获取系统已连接的蓝牙设备列表 选择连接   如果不是mfi的蓝牙设备 保存需要重连的蓝牙设备的uuid  通过uuid重连  还有就是  后台断开 提示用户是否需要重连  给选择连接或者不连接  要么就是不提示  在后台断开就一直走重连流程 根据具体情况和需求采用不同的重连方式...

2018-06-21 11:28:05 2129

原创 TextView跑马灯状态监听

最近UI有需求是 文本过长用跑马灯显示,跑完一遍后超出文本状态用 Marquee.END的模式,Android本身没有提供跑马灯状态监听的接口,本打算自定义一个TextView,定时去计算,虽然可以实现,但是效果应该没原生的好,于是决定使用反射的方式去实现,具体代码如下package com.dbn.dialogtest;import android.content.Context;impo...

2018-05-14 15:54:50 2789 1

原创 二叉树的几种遍历方式

package com.sys.binarytreetest.binary;import java.security.Principal;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Stack;/** * Created by chengjia...

2018-02-26 10:58:32 285

原创 Android获取本机蓝牙地址

从Android6.0开始,通过BluetoothAdapter.getDefaultAdapter().getAddress()获取的地址是一个固定值02:00:00:00:00:00,部分从低版本升级到6.0的手机也还是可以获取真实的MAC地址的。下面通过反射的方式获取蓝牙地址:public static String getBtAddressByReflection() {

2017-12-18 15:11:04 11383 3

原创 Android SQLite语句记录

CREATE TABLE 'test'('mac' varchar(20) not null,'dateString' varchar(20) not null,'stepnum' integer,'activitytime' integer default(0),primary key ('mac' , 'dateString'));select * from dbstepct wh

2017-11-27 11:23:09 410

原创 Android O使用通知遇到的坑

今天在Android 8.0上使用通知的时候,遇到一个问题,只要一发出通知,就弹出系统界面已停止运行的弹框。如下图所示代码如下:NotificationChannel chan1 = new NotificationChannel(PRIMARY_CHANNEL, "cd", NotificationManager.IMPORTANCE_DEFAULT)

2017-11-08 15:12:47 9824 5

原创 Google Nexus 手机root

https://autoroot.chainfire.eu/

2017-09-14 17:31:37 401

转载 Android BLE ERROR CODE

So here is a list of commands that aredocumented by hardware developers, such as Nordic and codes I figured outmyself. List is to be completed.StatusStatus HexDescription

2017-09-08 17:18:34 26511

转载 浅谈ios为什么比安卓流畅

一、优先级别不同:iOS最先响应屏幕  当我们使用iOS或者是Android手机时,第一步就是滑屏解锁找到相应程序点击进入。而这个时候往往是所有操控开始的第一步骤,iOS系统产品就表现出来了流畅的一面,但Android产品却给人一种卡顿的现象,更别说后续深入玩游戏或者进行其它操控了。这是为什么?  其实这与两个系统的优先级有关,iOS对屏幕反应的优先级是最高的,它的响应顺序依次为Touch--Me

2017-08-17 09:37:17 1880

原创 Android ViewPager Fragment相互嵌套遇到的问题

在项目开发中要在主页中显示不同的页面Fragment,页面Fragment中又嵌套Viewpager,Viewpager添加的是Fragment,然后根据需求增减主页的页面个数时,发生如下异常。解决方法将主页Fragment中嵌套的ViewPager的apdater设置为空05-22 18:04:26.960 3869-3869/com.isport.tracker E/AndroidRuntim

2017-05-22 18:10:51 1678

翻译 Update your app to take advantage of the larger aspect ratio on new Android flagship devices

To deliver more engaging viewing experiences to their users, many Android OEMs are experimenting with new, super widescreen smartphones. Samsung has just announced a new flagship device, the Samsung

2017-04-01 09:50:26 960

原创 html5 实现时钟

直接贴代码html lang="en">head> meta charset="UTF-8"> title>Canvas Teststitle> script type="text/javascript"> ///格式化数字 function PrefixInteger(num, n) { return (Ar

2017-03-23 00:00:36 1344

原创 单例模式在Android中的应用

单例模式是应用最广的设计模式之一,在应用这种模式的时候,单例对象的类必须保证只有一个实例存在。许多时候,整个系统只需要拥有一个全局对象,这样有利于协调系统的整体行为。如一个应用中,应该只有ImageLoader实例,这个ImageLoader实例中又包含网络请求、缓存系统、线程池等,很耗资源,因此没有理由让他构造多个实例。这种不能自由构造对象的情况就是使用单例模式的场景。在Android系统中存在

2017-03-19 16:52:54 971

转载 BLE 广播数据解析

BLE 设备工作的第一步就是向外广播数据。广播数据中带有设备相关的信息。本文主要说一下 BLE 的广播中的数据的规范以及广播包的解析。广播模式BLE 中有两种角色 Central 和 Peripheral ,也就是中心设备和外围设备。中心设备可以主动连接外围设备,外围设备发送广播或者被中心设备连接。外围通过广播被中心设备发现,广播中带有外围设备自身的相关信息。广播包有两种:

2017-03-08 12:13:39 5650

转载 TCP/IP协议三次握手与四次握手流程解析

一、TCP报文格式  TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式  上图中有几个字段需要重点介绍下:  (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。  (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+

2017-03-07 22:56:00 234

转载 jquery中attr和prop的区别

在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。关于它们两个的区别,网上的答案很多。这里谈谈我的心得,我的心得很简单:对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。 上面的描述也许有点模糊,举几个例

2017-02-06 22:33:26 1307 1

原创 适配android 7的自定义相机的预览及拍照

import android.Manifest;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.pm.PackageManager;import android.graphics.Bitmap;import an

2017-02-06 18:34:53 4972 2

原创 android 设置dialog 宽度为屏幕宽度

android 设置dialog 宽度为屏幕宽度 Window win = dialog.getWindow(); win.getDecorView().setPadding(0, 0, 0, 0); WindowManager.LayoutParams lp = win.getAttributes(); lp.width = WindowManager.LayoutParams

2017-01-13 15:20:38 2415

原创 $(document).ready()与window.onload()的区别

1.执行时机$(document).ready()方法和window.onload方法功能相似的功能,但是在执行时机方面是有区别的。window.onload方法是在网页中的所有元素完全加载到浏览器后才执行,即javascript此时才可以访问网页中的任何元素。而通过$(docuement).ready()方法注册的时间处理程序,在DOM完全就绪时就可以被调用。此时,网页中的所有元素对jQue

2017-01-10 22:15:09 338

The Magic of Flutter.pdf

Flutter是google推出的跨平台开发架构,在ios、android平台上有优异的表现,本文档是关于Flutter的基本概述和基本使用方法的介绍

2019-12-24

Flutter System Architecture

google移动开发框架Flutter系统框架结构《Flutter System Architecture》

2019-12-24

APKPure_e99c352d.apk

使用 APKPure 可以下载Google play上的apk, 特别好用,网址是https://apkpure.com/cn/

2018-01-30

nRF Connect

android BLE4.0调试工具

2017-06-06

nrftool masterpanel

Android 蓝牙开发工具

2017-06-01

nrftool connect

2017-04-11

ehuuerhejfjrnf

的发热广泛推广和crv人vg银行语句ijik1

2015-04-06

android tabhost用法 源码

详细介绍了安卓中tabhost的用法,有助于初学者学习

2014-10-14

android文件浏览器 完整版

完整的android文件浏览器,可以打开指定文件

2014-09-15

C_sharp字符串和正则表达式参考手册

《 C_sharp字符串和正则表达式参考手册》一书详细的介绍了 C_sharp字符串和正则表达式的使用方法,是一本很经典的书

2013-06-04

数据结构考试卷

《数据结构》(C语言版)考试卷,试题答案已给出,仅供参考

2013-06-04

C#表格控件详解

这是C#.NET表格控件的详解,详细说明了相关控件的使用等情况

2012-12-26

空空如也

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

TA关注的人

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