- 博客(32)
- 资源 (3)
- 收藏
- 关注
原创 Android基础Adapter适配器详解
一定要以数据库作为数据源的时候,才能使用SimpleCursorAdapter,且特别需要注意:必须在AndroidManifest.xml文件中加入权限(注意项目里AndroidManifest.xml文件名可能不是这个,可能是attrs_manifest.xml但是<declare-styleable name="AndroidManifest">)在显示列表上加按钮:写一个有按钮的xml,首先会想到定义一个适配器,然后将数据映射到布局文件上。c.数据 具体的将被映射的字符串,图片,或者基本组件。
2024-02-20 18:26:16
535
原创 1.29 SwiftUI学习笔记
1.FormA container for grouping controls used for data entry, such as in settings or inspectors.对用于数据输入的控件(如设置或检查器)进行分组的容器用法:var body: some View { Form { Section(header: Text("Notifications")) { Picker("Notify Me
2022-01-29 18:12:09
1913
原创 2022.1.4 Android导入compose的 Maven 组遇到的问题
1)Unresolved reference: compose 提示Add ‘jcip.annocations.jar’ to path按提示add后会import net.jcip.annotations.Immutable 这时@Immutable不报错了 但是import androidx.compose.runtime.Immutable依然报错2)Google搜索import androidx.compose.runtime会指向官方提示库导入文档 https://developer.an
2022-01-04 18:27:56
3286
原创 12.16 Android常见标签 UI控件
1.android:supportsRtl="true”指支持从右向左布局support right-to-left (RTL) layouts 是API17即Android4.2以后才有,之前是不支持该属性。当设置-开发人员选项-强制使用从右到左的布局方向就能看到效果。2.xmlns是xml namespace的缩写,C++中的namespace和Java中的packagename,是为了解决(如类名、接口名等)命名冲突。因为xml中标签不是预定义,所以会遇到命名冲突问题,而HTML中是预定义
2021-12-17 18:12:46
2699
原创 12.15 写Android UI组件遇到问题
1.imeOptions :android键盘中的enter键图标是可以用EditText的android:imeOptions标签变更android:ems = "10" : 设置TextView或者Edittext编辑的字符串长度为10,超出部分不显示,该属性只有android:layout_width=“wrap_content”时才显示,是march_parent时不会有变化android:layout_alignParentBottom="true"2.遇到问题:1)androi.
2021-12-15 19:39:37
5123
原创 12.14 Layout Inspector、颜色设置、xml不同文件类型区别、drawable不同文件名含义区别、常见UI控件
1.Tools > Layout Inspector1.1. 左Component Tree:布局中视图的层次结构。1.2 中 Layout Display:按照应用布局在设备或模拟器上的显示效果呈现布局,并显示每个视图的布局边界。1.3. 中上 布局检查器工具栏:布局检查器的工具。1.4. 右 Attributes:所选视图的布局属性。 1.5.选择视图: 在Component Tree或Layout Display中点击则选中视图,所选视图的所有布局属性都会显示在...
2021-12-14 19:11:39
1774
原创 12.7Android的Debug
12.71.Run模式和Debug模式是区分开的; Run、Debug、Run……with coverage1)选择Debug模式下,代码左边断点 红色小圆点2)在左下角的Debugger 调试 step over / step into单步调试或F8 / force step into 所有方法看完整/ step out/ drop frame / run to cursor3)当前程序运行位置的值 单步执行到哪一步,右边黄色代码会显示出来4)logcat是EventLog吗?...
2021-12-14 09:31:39
607
原创 12.13 XML布局 和 LiveData
1.xml布局Java代码调用方法控制UI 缺点:繁琐不易解耦;xml布局便捷但有失灵活xml文件编译时,都需要通过main函数中onCreate来调用,用法如下项目里 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ……}博客里@Override protected void onCreate(Bundle savedInsta...
2021-12-14 09:29:19
1101
原创 building for iOS Simulator, but linking in object file built for iOS, file for architecture arm64
一、问题app在真机能运行,在模拟器不能正常编译,出现报错二、原因字面看是模拟器状态下找不到对应的arm64架构文件,实质是M1芯片的兼容性问题PS:用M1芯片电脑 很多时候会遇到兼容性问题,当常规方案解决不了问题,试着搜索的时候带上关键字M1或许能更快找到答案三、过程网上搜索了很多无非就是需要该配置文件,但是亲测实际只需要2步四、解决方案具体如下2步:4.1 、podfile文件末尾添加以下脚本:然后执行pod install 命令。post_install do |
2021-09-26 23:20:34
5369
2
原创 iOS15新特性、iOS15适配
一、iOS15新特性1.1、iOS15兼容的设备iPhone6S以上,包括SE第一/二代,iPod touch第七代具体6s、6sPlus、7、7Plus、8、8plus、X、XR、XsMax、Xs、11、11Pro、11ProMax、12、12Pro、12ProMax、12mini、13、13Pro、13ProMax、13mini1.2、iOS15新特性专注模式,就是确保用户在一个时间段里屏蔽各种骚扰、非必要的内容不看不听,来提升做其他事情的效率。苹果做了各种细致分类,能进行量身定制。
2021-09-26 16:35:47
3620
1
原创 iOS设置非系统自定义字体- 原生app自定义字体和H5自定义字体
一、App更改自定义字体按照常规方法更改即可(1).将字体文件放入工程(2).在info.plist中增加Fonts provided by application 数组类型,并将添加的字体文件添加(3).找到字体文件对应的具体的我们要用的字体名字let fontFamilies = UIFont.familyNamesfor fontFamily in fontFamilies { let fontNames = UIFont.fontNames(forFamilyName: fo..
2021-05-16 22:27:35
1186
原创 H5与iOS混编 之WKWebView与UIWebView用法区别
一、WebViewView比UIWebView的优点1.WK是iOS8以上推出,目前都是建议用WK2.WK将UIWebViewDelegate和UIWebView封装成了14个类和3个协议3.支持更多的H5特性4.高达60FPS的滚动刷帧率和内置手势5.性能、稳定性、功能都更好,加载网页占内存更少(比如模拟器加载百度占内存23M,只有UIWebView的1/4左右)6.允许JS的Nitro加载并使用二、UIWebView实现交互的方法和原理UIWebView实现H5与iOS混
2021-04-19 09:39:45
396
原创 Flutter执行flutter pub get过程中遇到的问题
一、执行命令路径有问题提示错误:找不到pubspec.yaml文件应该在Flutter项目的根目录下 而不是git clone或Flutter的解决方案:cd flutter项目目录 再执行命令二、电脑配置的Flutter SDK 版本过低提示问题:当前电脑配置的版本是1.7.8+hotfix.4.而项目需要的是大于等于1.12.0小于2.0.0解决方案:flutter upgrade三、Upgrading Flutter卡住不动问题:执行flutter upgrad
2021-03-28 21:10:16
3006
1
原创 H5与iOS混编 之 JavaScriptCore 详解
一、浏览器历史浏览器器对于现代社会人来说再普通不过,可对它的历史了解的人却不多。 1990年 Berners-Lee 发明了 WorldWideWeb 浏览器,后改名 Nexus,在1991年公布了源码。 1993年 Marc Andreessen 的团队开发了 Mosaic,1994年推出我们熟悉的 Netscape Navigator 网景浏览器,同时成立了网景公司。 1995年微软推出了 Internet Explorer 浏览器,简称 IE,通过免费绑定进 Window
2021-03-22 13:45:31
463
原创 RunLoop底层原理
一、RunLoop介绍1.1概念:(关键字:运循 内维事循对事/消 管 对象)运行循环,程序运行过程中循环做一些事情。通过内部维护的事件循环对事件/消息进行管理的一个对象。1.1.2RunLoop休眠实现原理(关键字: 等消息 无线休 有唤醒 用户态->内核态 )等待消息,没有消息就让线程休眠,用户态到内核态切换;有消息就唤醒线程,处理事件,内核态到用户态切换。1.1.3main函数作为启动入口,顺着执行体代码以此执行,最后main函数退出,程序退出。main为什么能保持不退出
2021-03-03 13:57:15
781
原创 OC语言特性
一、分类1.1做了那些事?(关键词:明私、分解、私公开化)声明私有方法,分类头文件放到数组文件.m中,不对外暴露分解体积庞大的类文件 功能复杂的按功能分类framework私有方法公开化1.2特点 (关键词:运决议 系统类加)运行时决议 分类定义好后不立即加到宿主类,而是runtime将分类中内容加到对应宿主类(分类与扩展最大区别)能为系统类添加分类 如坐标获取,UI文件1.3可添加的内容?(关键字:实 类 协 属非实变)实例方法 类方法 协议 属性非实例变量 通过关联对
2021-02-23 22:52:43
241
原创 Mac 屏幕录制 权限 没有可勾选或添加的App选项 产生原因和解决办法
遇到问题:安装软件需要获取截屏和屏幕录制的功能权限,但是发现打开系统设置->安全性与隐私-屏幕录制,右边竟然没有可勾选或可添加的App选项产生原因:经过网络搜索关键字,发现是因为系统升级到10.5,MacCataLina过程中位于/Library/Application Support/com.apple.TCC目录下的TCC.db文件损坏了。期间遇到的错误提示(Error: table access has 7 columns but 12 values were supplied)...
2021-02-22 11:36:10
42827
17
原创 Block 本质、实现原理、内存管理、循环引用、__block等
一、Block介绍1.1概念:将函数及其执行上下文封装起来的对象 底层用struct实现1.2block实现原理:a .新建项目 代码放入file.m中 b.打开终端cd到项目目录下 c.敲clang -rewrite-objc file.m查看编译后的文件内容 本质是将OC重写为C后目录下多了个file.cpp文件1)Block实际上是OC对于闭包(闭包是一个函数或指向函数的指针,再加上该函数执行的外部的上下文变量。)的实现。OC是对C语言的扩展,block的实现是基于函数和指向函数的
2021-02-21 11:42:45
1607
原创 UIView相关总结
CALayer内部创建backingstore(CGContextRef) 一般在drawRect方法中可以通过上下文堆栈取出栈顶的Context,拿到当前视图或控件的上下文,然后该layer会判断是否有delegate,若无则调用[CALyer drawInContext:],若有调用[layer.delegate drawLayer:inContext:]做当前视图的绘制工作,这步发生在系统内部,在合适时机给予一个回调方法[UIView drawRect:],开这个口子允许做一些其他绘制工作;
2021-02-04 07:49:12
327
1
原创 设计模式、架构、框架
一、设计模式1.1概念:一套被反复使用、易理解、保证代码可靠性的代码设计经验的总结;与编程语言无关的成熟的编程思想。1.2六大设计原则:单一职责、开闭、接口隔离、依赖倒置、里氏替换、迪米特1.2.1单一职责原则:一个类只负责一件事。如UIView事件传递、响应;CALayer动画视图显示。1.2.2开闭原则:对修改关闭,对扩展开放。对类的成员变量定义避免反复改;对类的数据结构定义好后提供接口(包括子类继承)1.2.3接口隔离原则:用多个专门协议且协议中方法尽量少,避免一个臃肿庞大的协议。
2021-01-31 22:40:01
243
原创 HTML5写网站遇到问题总结与思考2
1.在body内输入缩写按下tab键,属性用[],文本用{}. # *个数 $依次代表1,2,3,4,5div.类名和div#类名 效果<divclass="abc"></div>,ul>li{名字}*3效果ul里面3个lidiv>a[href='#']{小花}*3效果<div><ahref="#">小花</a>select>option{$}*5效果<select name="" id=""><op
2021-01-30 16:17:47
159
原创 HTML5写网站遇到问题总结与思考1
、遇到问题:文字颜色在li中已经设置但却是蓝色原因:1.li中文字颜色默认是蓝色2.li里面的文字颜色大小等属性需要在li>a里面设置才会生效二、操作过程中的快捷键Ctrl+Shift+/注释Cmd+D 在某一行操作,会复制与本行同样的内容到下一行三、疑问:margin-left与padding-left的区别?margin边界 padding填充四、 优化.header_nav_left和right里的文字变换逻辑一样,优化时粗心导致问题:本应该在黑色区域内显示的内容却超出父级的高度
2021-01-25 17:33:58
299
原创 Typora用法
1.##代表二级标题,###代表三级标题,依此类推,但是最多只能到六级标题#这是一级标题typora默认回车换行,中间会空一行##这是二级标题###这是三级标题2.快捷键组合为Ctrl+数字1-6,分别对应标题级别1-63.typora默认回车换行,中间会空一行,若希望紧凑一些,按住Shift+Enter换行就不会有空行4.选择字号习惯 Typora->偏好设置->外观里可以设置字号...
2021-01-15 18:11:17
1109
原创 网络概念与常见问题全解析(网络面试题 学会这篇 基本都能答上来)
Http协议Https与网络安全TCP/UDPDNS解析Session/Cookie
2021-01-15 16:21:53
434
原创 内存管理 以及 OC中的属性关键字
1.定时器CADisplayLink、NSTimer会对target强引用,target又对它们强引用,就会引发循环引用解决方案block代理对象NSProxyNSTimer依赖于RunLoop,当RunLoop的任务过于繁重,会导致NSTimer不准时GCD定时器更准时2.内存布局:从低到高依次是保留、代码段.text(编译之后的代码)、数据段(字符串常量、已.data/未.bss初始化全局/静态变量等数据)、堆heap(通过a/m/calloc的等动态分配空间,分配的内存空间地址从低到高,
2021-01-06 22:27:27
238
原创 技术成长进阶、指数级提升方法 2021年计划表
1.编程需要狂敲代码,做 中 学!2.做笔记加强记忆,且必须复习,每隔1h,1d,3d,1w,1m快速回顾!3.解决问题的能力:借助搜索引擎但最关键养成查阅官方文档的习惯否则易生惰性!4.使自己更具专业化:坚持一个方向并刨根问底,常见技术难点弄透彻才最有效率!5.读计算机经典书籍:《代码的未来》、《代码整洁之道》、《重构:改善既有代码设计》、《设计模式》、《Head First设计模式》、《程序员修炼之道》、《从0到1》、《算法图解》、《编写可读代码的艺术》《iOS应用逆向与安全》、《九阴真经iO
2020-12-31 19:00:06
326
原创 性能优化:启动优化、卡顿优化、耗电优化、安装包瘦身
性能优化:1.启动优化:冷启动(从零开始启动App)热启动(App已在内存,在后台存活着,再次点击图标启动App)添环境变量打印启动时间Edit scheme->Run->Arguments添DYLD_PRINT_STATISTICS设置为1若需更详细信息_DETAILS冷启动3个阶段:dyld runtime main(之前初始化 dyld主导将可执行文件加载到内存,加载依赖的动态库包括解析/绘制/重定位/绑定图片;runtime负责加载成objc定义的结构包括加载类/分类、属性/构造函
2020-12-30 22:16:34
283
原创 Runtime看这一篇就够了
1.数据结构 2.类 元类对象 3 消息传递 4.方法缓存 方法本质 SEL IMP5 消息转发 6 Method-Swizzling 7动态添加方法 8动态方法解析9.什么是,为什么用 10.[self class]与[super class]区别及原理 11. 12实例变量与类结构 13.weak在Runtime的底层实现 14.objc_msgForward 15.objc_msgSendAPILLVM的中间代码OC在变成机器代码前,会被LLVM编译器转换成中间代码。可用命令行cl..
2020-12-18 15:20:06
209
原创 H5与iOS混编之交互即跳转、调用方法、传值
WKWebView#import <JavaScriptCore/JavaScriptCore.h>OC给JS传值:本质是页面加载完成后即didFinishLoad后OC调用JS方法,传的值是JS方法的一个参数JSContext *context = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; [context setObject:self forKeyedSu..
2020-09-04 11:36:03
2191
原创 iOS 多线程之加锁
开篇思考:1.什么是锁?2.为什么加锁?3.有哪几种锁?4.不同锁的使用场景?各自用法?5.不同锁的性能对比1.什么是?保护多线程并发执行安全的方式,避免多线程同时访问同一块资源而出现数据混乱,引发数据安全问题。如:读并改同一值而混乱2.为什么?解决多线程抢夺同一块资源问题3.哪几种?5.性能对比自旋锁 OSSPinLock 、atomic什么情况使用自旋锁?预计线程等待锁的时间很短,短到比线程切换上下文时长更短多核处理器加锁的代码(临界区)经常被调用,但竞争情况很...
2020-09-03 18:12:35
468
原创 Flutter入门知识
Dart基础知识:声明式UI:Flutter入门知识:项目结构、资源、依赖和本地化:视图:布局与列表:状态管理:路由与导航:线程和异步UI:手势检测及触摸事件处理:主题和文字处理:表单输入与富文本调用硬件、第三方服务及平台交互、通知Flutter实例项目图片控件开发详解动画Animation开发指南Flutter调试技巧...
2020-05-21 21:10:40
192
J2ME手机开发入门源代码
2010-12-31
Java2宝典(Java2 Bible)[美]Aaron Walsh Justin Couch Daniel H.Steinberg著
2010-10-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人