- 博客(517)
- 资源 (7)
- 收藏
- 关注
原创 Java线程池 - (二)内置线程池
Java线程池 - (二)内置线程池ExecutorService接口是Java内置的线程池接口,整体的继承关系如下:其常用方法有:void shutdown() - 启动一次顺序关闭,执行以前提交的任务,但不接受新任务List<Runnable> shutdownNow() - 停止所有正在执行的任务,暂停处理正在等待的任务,并返回等待执行的任务列表<T> Future<T> submit(Callable<T> task) - 执行带返
2021-11-21 21:12:42
958
原创 Java线程池 - (一)自定义线程池
Java线程池 - (一)自定义线程池什么是线程池?线程池就是一种多线程处理形式,处理过程中可以将任务添加到队列中,然后在创建线程后自动启动这些任务为什么要使用线程池?可以根据系统的需求和硬件环境灵活的控制线程的数量,且可以对所有线程进行统一的管理和控制,从而提高系统的运行效率,降低系统运行压力使用线程池的优势1.线程和任务分离,提升线程重用性2.控制线程并发数量,降低服务器压力,统一管理所有线程3.提升系统响应速度,假设创建线程用的时间是T1,执行任务用的时间是T2,销毁线程用的时
2021-11-21 10:25:58
1149
原创 Android MQTT
Android MQTT本地搭建MQTT测试参考:MQTT在Android端的使用详解以及MQTT服务器搭建、Paho客户端使用1.安装emqx安装后,cd到eqmx目录下,使用如下的命令# Start emqx./bin/emqx start# Check Status./bin/emqx_ctl status# Stop emqx./bin/emqx stop启动后打开http://localhost:18083,帐号为admin,密码为public2.Paho客户端
2021-11-05 17:14:40
5429
3
原创 Android Wifi (二)
Android Wifi记录下学习Android 10源码中有关Wifi的知识点知识点WEP 无线加密协议(英语:Wireless Encryption Protocol)WPA 全名为 Wi-Fi Protected Access(Wi-Fi网络安全存取)PSK,预共享密钥模式(pre-shared key (PSK),又称为"-Personal",即“-个人模式”)是针对承担不起802.1X认证服务器的成本和复杂度的家庭或小型公司网络设计和使用的SAE(Simultaneous Authen
2021-11-03 14:15:14
1318
原创 Car术语
Car术语TTS - Text To Speech,语音合成VPA - Virtual Personal Assistant,智能语音助手、AI助手等虚拟个人助理的统称DMS - Driver Monitor System,驾驶员监测系统CPSP - Content provider /Service provider,内容服务,车载音乐、视频软件...
2021-10-29 10:03:12
3563
原创 Robot Framework And Appium
Robot Framework And Appium官方文档:AppiumLibrary.htmlBuiltIn.htmlRobot Framework documentation定位元素比如Android界面上有一个TEST按钮,在Appium中它显示的属性如下:可以通过如下的方式来点击这个按钮通过idClick Element com.example.appiumlibrarytest:id/button1通过classClick Element //andro
2021-09-09 19:23:22
490
原创 Car Radio
Radio记录下学习Android Car Radio源码,源码来源自https://cs.android.com/androidBandDescriptor表示的是无线电波段描述符,它是ModuleProperties波段数组中的一个元素,有两个子类FmBandDescriptorAmBandDescriptorProgramSelectorProgramSelector表示的是调谐到给定电台所需的一组标识符。A set of identifiers necessary to tune
2021-08-30 15:04:58
1758
1
原创 Android系统应用开发
Android系统应用开发android:sharedUserId=“android.uid.system”在AndroidMainfest.xml中添加 android:sharedUserId="android.uid.system" 。通过sharedUserId属性,相同User id的apk配置运行在同一进程中,把程序的User id配置成android.uid.system,也就是让程序运行在系统进程中,这样程序就有权限来读写系统配置。Android push apk to /system
2021-08-27 17:23:39
6369
2
原创 Mac上安装scrcpy
Mac上安装scrcpy在Mac上通过brew install scrcpy来安装scrcpy安装的时候可能会出错,参考brew install not working on Mac (Catalina) #2247 ,可先使用brew update 更新brew设置Homebrew镜像源安装scrcpy的过程很缓慢,可以尝试修改源or使用科学上网工具参考:Homebrew / Linuxbrew 镜像使用帮助查看当前Homebrew的source,参考homebrew查看源配置,如:g
2021-08-26 17:58:56
8534
2
原创 Android WiFi(一)
Android WiFiWiFi相关的知识点,我是第一次接触,所以比较零碎WiFi Scan官方文档对WiFi扫描的说明:WLAN 扫描功能概览比较完整的例子,可参考:Develop a WiFi Scanner for Android按照官方文档,大致的步骤:1.为 SCAN_RESULTS_AVAILABLE_ACTION 注册一个广播监听器,系统会在完成扫描请求时调用此监听器,提供其成功/失败状态2.使用 WifiManager.startScan() 请求扫描3.使用 W
2021-08-23 09:27:38
2482
3
原创 Android WiFi热点
Android WiFi热点项目中有需要对WiFi热点需要进行某些操作,所以记录下一些有关WiFi热点的知识点开启或者关闭热点网上的大部分例子,都是通过反射,调用WifiManager的setWifiApEnabled方法,来开启或者关闭热点,如:Android WiFi开发 (二)Wifi热点三、Android开启wifi热点//热点的配置类WifiConfiguration apConfig = new WifiConfiguration();//配置热点的名称(可以在名字后面加点随
2021-08-19 16:59:52
8122
4
原创 AppiumLibrary使用
AppiumLibrary使用可参考Appium+RobotFramework第一个自动化测试脚本实现第一个自动化测试脚本AppiumLibrary的关键字可参考官方文档:AppiumLibraryOpen ApplicationOpens a new application to given Appium server可以理解为启动一个应用例子如下:Open Application http://localhost:4723/wd/hub platformName=Android
2021-07-27 17:55:30
951
1
原创 appium+robotframework
appium+robotframeworkappiumMac上安装appium参考了网上的很多资料,在appium官网上下载Mac版的安装包安装后需要配置ANDROID_HOME和JAVA_HOME,如果不配置可能在后面的start server时会出错,可能有如下的错误:An unknown server-side error occurred while processing the command. Original error: Cannot verify the signature of
2021-07-22 11:49:07
527
原创 创建Bitmap
创建Bitmap使用BitmapFactoryBitmapFactory Creates Bitmap objects from various sources, including files, streams, and byte-arrays.BitmapFactory用于从各种资源、文件、数据流和字节数组中创建Bitmap(位图)对象其主要方法:public static Bitmap decodeResource(Resources res, int id)public static
2021-07-19 15:04:09
1244
1
原创 SurfaceView基础
SurfaceView基础大部分内容来自《Android自定义控件开发入门与实战》一书有时会在Logcat的输出中出现如下的内容:Skipped 60 frames! The application may be doing too much work on its main threadAndroid屏幕的刷新时间间隔是16ms,如果View能够在16ms内完成所需执行的绘图操作,那么界面就是流畅的,否则就会出现卡顿大部分原因是在绘制过程中做了很多逻辑操作,导致没有在指定的16ms内完成绘制
2021-07-16 14:05:09
416
2
原创 PathMeasure
PathMeasurePathMeasure可以计算指定path的一些信息,比如路径总长、指定长度所对应的坐标点等创建方式: public PathMeasure() public PathMeasure(Path path, boolean forceClosed)forceClosed - forceClosed参数对绑定path不会产生任何影响,如果一个折线没有闭合,当forceClosed为true时,PathMeasure计算的path是闭合的,但path本身绘制出来的是不会闭合的。
2021-07-14 17:48:14
189
原创 Cocoapods Swift和Objective-C混编
Cocoapods Swift和Objective-C混编参考:制作Swift和Objective-C Mixed的PodCocoaPods组件化之OC与Swift混编问题如何在模块化/组件化项目中实现 ObjC-Swift 混编?在 Swift Framework 中使用 C 文件的过程探索组件化开发之-如何解决Swift/OC-Framenwork/Library混合创建pod问题...
2021-01-19 15:16:50
1891
原创 Map
Map一些基础知识地理坐标系的介绍:地理坐标系一般是指由经度、纬度和相对高度组成的坐标系,能够标示地球上的任何一个位置经纬度经度(longitude):东经为正数,西经为负数。纬度(latitude):北纬为正数,南纬为负数。...
2021-01-15 16:47:07
156
原创 Shell笔记二
Shell笔记二内容来自:Shell if else语句流程控制[]方括号方括号的一些用法可参考:Shell 中的中括号用法总结Shell 里面的中括号(包括单中括号与双中括号)可用于一些条件的测试:算术比较, 比如一个变量是否为0, [ $var -eq 0 ]。文件属性测试,比如一个文件是否存在,[ -e $var ], 是否是目录,[ -d $var ]。字符串比较, 比如两个字符串是否相同, [[ $var1 = $var2 ]]。[] 常常可以使用 test 命
2021-01-04 17:43:35
216
原创 Shell笔记一
Shell笔记一内容来自:Shell简介需要知道是,参考在 Mac 上将 zsh 用作默认 Shell:从 macOS Catalina 版开始,您的 Mac 将使用 zsh 作为默认登录 Shell 和交互式 Shell。您还可以在较低版本的 macOS 中将 zsh 设置为默认 Shell。使用$ cat /etc/shells命令来查看系统的可用Shell,在Mac OS系统下,输出结果如下:# List of acceptable shells for chpass(1).#
2020-12-28 16:19:15
217
1
原创 编译选项
编译选项一些文章:NSClassFromString返回结果为nil的原因Building Objective-C static libraries with categoriesOther Linker FlagsXcode 编辑器之关于Other Linker Flags相关问题
2020-11-20 13:41:35
270
原创 Shell
Shell教程资源:jaywcjlove / shell-tutorialbash-simple-guide-chinesedunwu / linux-tutorial52fhy / shell-book
2020-10-29 14:38:59
203
1
原创 静态库、动态库、Framework
静态库、动态库、Framework参考:BASIC OVERVIEW OF STATIC AND DYNAMIC FRAMEWORKS ON IOSFrameworkFor frameworks, we first need to understand the bundle concept (as a framework is a specific kind of a bundle). A bundle is a file directory with subdirectories inside.
2020-10-27 15:03:47
331
原创 Cocoapods:podspec与使用过程中遇到的问题
Cocoapods:podspec在实际使用中,遇到一些疑问,记录下来use_frameworks!为啥要在CocoaPods中使用 use_frameworks!,参考:Why do we use use_frameworks! in CocoaPods?use_frameworks! tells CocoaPods that you want to use Frameworks instead of Static Libraries. Since Swift does not suppo
2020-10-27 14:30:00
1558
原创 Charles抓取HTTPS请求
Charles抓取HTTPS请求按通常的设置,在手机上设置代理在使用Charles抓取HTTPS请求时,如果没有任何设置,可能会提示SSL Proxying not enabled for this host:enable in Proxy Setting,SSL locations参考官网SSL CertificatesEnable SSL proxy on iOS如果是真机设备,要安装证书在Help-> SSL Proxying选择会有如下的弹窗之后去手机的浏览器,访问chl
2020-10-13 14:10:50
638
原创 架构模式-VIPER
架构模式-VIPERiOS架构模式,可参考如下的文章:iOS 架构模式–解密 MVC,MVP,MVVM以及VIPER架构浅谈 MVC、MVP 和 MVVM 架构模式iOS VIPER架构实践(一):从MVC到MVVM到VIPERiOS VIPER架构实践(二):VIPER详解与实现VIPER的全称是View-Interactor-Presenter-Entity-Router。示意图如下:View提供完整的视图,负责视图的组合、布局、更新向Presenter提供更新视图的接口将V
2020-10-12 15:20:16
1222
原创 Flutter-Text组件
Text组件参考:Text class文本及样式其构造方法const Text( String data, {Key key, TextStyle style, StrutStyle strutStyle, TextAlign textAlign, TextDirection textDirection, Locale locale, bool softWrap, TextOverflow overflow, double textScaleFactor, int max
2020-10-11 11:30:20
421
原创 Flutter问题集
Flutter问题集记录Flutter开发中遇到的问题1.iPhone真机调试,提示无法打开“iproxy”,因为无法验证开发者参考:Flutter 常见问题汇总来解决但貌似当前的版本,在libimobiledevice目录下,并不存在idevice_id和ideviceinfo着两个文件那就直接修改iproxysudo xattr -d com.apple.quarantine [your_flutter_path]/bin/cache/artifacts/usbmuxd/iproxy.
2020-09-27 17:11:22
998
原创 Cocoapods安装与SVN使用
Cocoapods安装与使用2020年换了个新电脑,在最新的系统上安装cocoapods,遇到许多问题,一言难尽按cocoapods开发环境搭建来操作先更新rubygem sources --remove https://rubygems.org/gem sources -a https://gems.ruby-china.com/gem sources -lsudo gem update --system安装sudo gem install -n /usr/local/bin
2020-09-26 00:47:07
776
原创 iOS内购三:Receipt
iOS内购三:Receipt可参考:Validating Receipts Locally需验证receipt,可以在本地验证,也可以在服务端验证本地验证,涉及到security和加密,比较复杂而服务端验证相对而言简单些收到transaction后,将receipt发送到自己的服务器自己的服务器连接apple的服务器,做解密和验证apple将结果发送给服务器,服务器再发给你参考:Choosing a Receipt Validation TechniqueLocal -
2020-09-10 11:55:20
2595
原创 iOS内购二:购买和恢复
iOS内购二:购买和恢复购买构建一个SKPayment对象,传递SKProduct。SKPayment被创建后,就会将其加入到SKPaymentQueue队列中然后用户会授权,payment是异步,所以需要一个observer,apple建议observer添加都的AppDelegate中支付之后,app store会返回一个transaction,transaction包含receipt(被加密签名,可以获取购买的信息)和 state最后,还需要让apple知道你已经完成处理这个transac
2020-09-09 11:28:41
6438
原创 Push Notifications
Push Notifications还是参考:Push Notifications Tutorial: Getting Started因为有一些新的变化,做下笔记Mac客户端的推送工具:PushNotificationsAuthentication Key新的APNs协议基于HTTP/2,一种是使用Universal Push Notification Client SSL 证书,一种是使用Token。生成的是一个.p8文件Basic Push Notificationaps内置的
2020-08-28 16:19:41
1498
原创 Optimizing App Startup Time
Optimizing App Startup Time内容来自官方视频Optimizing App Startup TimeMach-OMach-O是运行时可执行文件的文件类型。一些术语表Executable - Main binary for application 可执行文件,应用扩展文件的主二进制文件Dylib - Dynamic library (aka DSO or DLL) 动态库,在其他平台上,可能是DSO 后缀 DLLBundle - Dylib that cannot be
2020-08-17 18:00:16
661
原创 Mach-O
Mach-O维基百科介绍Mach-O:Mach-O为Mach Object文件格式的缩写,它是一种用于可执行文件,目标代码,动态库,内核转储的文件格式。作为a.out格式的替代,Mach-O提供了更强的扩展性,并提升了符号表中信息的访问速度。Mach-O曾经为大部分基于Mach核心的操作系统所使用。NeXTSTEP,Darwin和Mac OS X等系统使用这种格式作为其原生可执行文件,库和目标代码的格式。而同样使用GNU Mach作为其微内核的GNU Hurd系统则使用ELF而非Mach-O作为其标
2020-08-14 11:52:51
616
原创 文字后面显示展开或者收取
文字后面显示展开或者收取在文字显示时,可能有这样的要求,例如,限制文字为3行,超过3行后,在文字最后显示"查看更多"在网络上搜索了下,有如下的几种方式来实现:1.开源控件,使用TruncationTokenYYLabel 点击展开和收起全文展开label,利用YYText实现文字显示不完末尾添加全文另外TTTAttributedLabel也支持这种方式2.使用CoreText,参考:CoreText进阶(四)-文字行数限制和显示更多3.其它方式,参考:Add “…Read Mo
2020-07-02 11:14:40
1496
原创 FSCalendar使用
FSCalendar使用在项目中经常有使用到日历,大部分使用场景都需要自定义日历,FSCalendar能适应大部分场景参考如下的使用文档:More usageFSCalendar使用介绍(一) - Hello WorldFSCalendar使用介绍(二) - 农历、事件FSCalendar使用介绍(三) - 订制外观FSCalendar大概由如下的几部分组成:FSCalendarHeaderTouchDeliver - 为FSCalendarHeaderView和FSCalenda
2020-06-02 17:20:31
7891
1
原创 Automatically manage signing
Automatically manage signing参考:iOS开发之带你玩转Xcode自动管理证书iOS Code Signing虽然现在xcode推荐使用Automatically manage signing,但在使用过程中还是遇到一些问题1.Provisioning Profile的位置位于如下的位置,可能有时候需要手动删除~/Library/MobileDevice/Provisioning Profiles/下载Provisioning Profile,可在Xcode
2020-05-20 15:38:29
3026
原创 Charts使用
Charts使用Charts是一个开源的绘图框架,来源自Android的MPAndroidChart,是一个跨平台的框架。支持Swift和Objective-C其具体使用文档可参考:mpandroidchart -
2020-05-19 17:06:25
2544
iOS Drawing Practical UIKit Solutions
2016-03-06
iOS Programming- The Big Nerd Ranch Guide 第4版
2015-06-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人