自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(383)
  • 资源 (19)
  • 收藏
  • 关注

原创 Android 博客目录整理

之前有整理过Android部分的博客目录的,不幸弄丢了,再来整理一份吧!希望这次不要再丢了!!!初识Android1、Android开发相关介绍及工具的安装  2、 Android电话拨号程序   3、 Android:发短信Demo与Activity相识 Activity的2种启动方式 Android UI之初体验五大布局1、 Android UI设计的三种常见布局(LinearLayout

2015-10-18 13:19:40 2942 7

原创 鸿蒙Harmony(十一)Stage模型

Stage模型:HarmonyOS 3.1 Developer Preview版本开始新增的模型,是目前主推且会长期演进的模型。在该模型中,由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,因此称这种应用模型为Stage模型。

2023-12-28 21:28:56 1013

原创 鸿蒙Harmony(十)动画

属性动画是通过设置组件的animation属性来给组件添加动画,当组件的width、height、Opacity、backgroundColor、scale 、rotate、translate等属性变更时,可以实现渐变过渡效果。

2023-12-28 13:14:42 582

原创 鸿蒙Harmony(九)页面路由

页面路由是指在应用程序中实现不同页面之间的跳转和数据传递。同时,Router模块提供了两种实例模式,分别是Standard和Single。这两种模式决定了目标url是否会对应多个实例。Standard:标准实例模式,也是默认情况下的实例模式。每次调用该方法都会新建一个目标页,并压入栈顶。Single:单实例模式。即如果目标页的url在页面栈中已经存在同url页面,则离栈顶最近的同url页面会被移动到栈顶,并重新加载;如果目标页的url在页面栈中不存在同url页面,则按照标准模式跳转。

2023-12-28 10:50:18 1004

原创 鸿蒙Harmony(八)ArkUI--状态管理器之@Prop 和 @Link & @Provide 和 @Consume & @ObjectLink 和@Observed

承接。

2023-12-27 22:13:09 568

原创 鸿蒙Harmony(八)ArkUI--状态管理器之@State

在声明式UI中,是以状态驱动视图更新状态:指驱动视图更新的数据(被装饰器标记的变量)

2023-12-27 22:11:49 870

原创 鸿蒙Harmony(七)ArkUI--循环foreach&List组件&自定义组件

创建自定义组件 @Component@Builder@Style:仅可封装组件通用属性@Extend:仅可定义在全局,可以设置组件的特有属性@Componentbuild() {} }代码示例@Componentprivate name: string = "苹果"build() {Row() {.width(80).borderRadius(40) //圆角。

2023-12-27 10:56:34 856

原创 鸿蒙Harmony(六)ArkUI---基础组件:Image、Text、TextInput、Button、Slider

【代码】鸿蒙Harmony(六)ArkUI---基础组件:Image、Text、TextInput、Button、Slider。

2023-12-27 10:56:03 429

原创 鸿蒙Harmony(五)ArkUI---基础组件:Text、TextInput、Button、Slider

1.设置文案在资源文件中添加对应的文本资源2.属性设置效果。

2023-12-27 10:55:19 629

原创 鸿蒙Harmony(四)ArkUI---基础组件:Image

权限申请文档(安全中的访问权限): https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/accesstoken-guidelines-0000001493744016-V2。Cover(默认值):保持宽高比进行缩小或者放大,使得图片两边都大于或等于显示边界。Contain:保持宽高比进行缩小或者放大,使得图片完全显示在显示边界内。Fill:不保持宽高比进行放大缩小,使得图片充满显示边界。None:保持原有尺寸显示。

2023-12-27 10:53:27 486

原创 鸿蒙Harmony学习(三)TypeScript语言学习

TypeScript在JavaScript的技术长加入了静态类型检查功能,因此每个变量都有固定的数据类型我们可以通过TypeScript官网的playground来简单运行一下我们的程序。

2023-12-27 10:52:58 445

原创 鸿蒙Harmony学习(二)ArkTs与ArkUI初识

由struct 修饰的是自定义组件,自定义组件是一个个可复用的UI单元。

2023-12-27 10:52:34 1117

原创 鸿蒙Harmony开发学习(一)运行helloworld

HarmonyOS与OpenHarmony(1)本质上的不同是:HarmonyOS是鸿蒙操作系统,而OpenHarmony则是从开源项目。这里可以联想一下Android,比如小米手机在Android开源系统的基础上开发了MIUI的手机操作系统,HarmonyOS就类似于MIUI,OpenHarmony类似Android基础底座。(2)HarmonyOS:是双框架,内聚了AOSP(Android Open Source Project )和OpenHarmony等。

2023-12-27 10:45:57 1351

原创 IOS学习-02 OC--封装、继承、多态

/ 成员变量方案修饰符问题1、@public: 公有 - 在类内类外都可以使用并且可以被继承2、@private: 私有 - 在类内可以使用,类外无法调用,并且不可被继承3、@protected: 受保护 - 在类内可以使用,类外无法调用,并且可以被继承4、 @package: 框架权限 - 在框架内相当于受保护,在框架外相遇私有。// 方法没有访问修饰符。

2023-02-26 21:45:39 254 1

原创 IOS学习-02 OC--属性与函数

oc 属性与函数

2023-02-19 22:07:11 208

原创 IOS学习-01 OC--helloword示例记录

执行成功cc -c 之后,调用cc xx.o. 发现报错,报错是因为运行后并没有引入NSLog的框架内容导致,需要调用cc xx.o -framework Foundation。ps:过程中如果不知道需要import什么内容,可以通过cc -c xxx.m 命令行运行后,会有错误提示,根据错误提示复制对应内容即可。3、执行cc xx.o。

2023-02-19 22:00:21 132

原创 脱糖与DX、D8、R8

脱糖脱糖含义:lamdal表达式在打包构建期间被转换成内部类的形式,这个过程叫脱糖(java编译时不会这样)。为了让我们能使用上Java 8的特性,Google使用Transformation来增加了一步编译过程 →脱糖(desugaring)。脱糖实现的大概发展历程如下:D8D8作用:脱糖 + 将.class字节码转换成dexR8整合了Proguard和D8 ,减少了一个编译步骤,同时保留了字节码优化能力两者关系1、ProGuard→ 压缩、优化和混淆Java字节码文件的免费工具,开源

2022-03-24 16:17:25 1009

原创 Android 性能优化(1)--性能优化介绍

1、性能优化需要解决的问题2、性能优化解决方案根据项目阶段的演进学习性能优化解决方案演进的作用:1、深刻理解性能优化手段、思维发展历程2、面试展现对更高层次的思考、理解3、业界优秀的平台化实践...

2022-02-05 16:06:05 385

原创 Android性能优化总提纲

优化工具:(1)Systrace:关注Frames,正常:绿色圆点丢帧:黄色或者红色–alerts栏(2)LayoutInspector(AS–tools–LayoutInspector)(3)可以通过Choreographer来获取FPS,Choreographer.getInstance().postFrameCallback()。如何优雅的获取界面的布局耗时常规方式:获取每个界面加载耗时 (对setContentView 记录时间)AOP/ArtHook:(1)aop:切Activ

2022-02-05 16:05:17 125

原创 Android 性能优化(7)--网络优化

网络优化维度网络优化工具网络流量消耗的精准获取网络请求优化网络请求质量优化网络优化监控体系小结

2022-02-05 15:54:35 2074

原创 Android 性能优化(6)--apk瘦身优化

瘦身优化及apk分析方案介绍瘦身优势1、下载转换率的提升2、头部App都有Lite版本3、渠道合作商要求apk的组成1、代码相关:classes.dex2、资源相关:res、asserts、resources.arsc3、so相关:libapk分析1、ApkTool反编译工具(官网:https://ibotpeaches.github.io/Apktool/)命令:apktool d xx.apk...

2022-02-04 16:31:02 300

原创 Android 性能优化(5)--卡顿优化

卡顿优化CPU ProfilerSystraceStrictMode卡顿问题难的排查是比较难的,一方面因为卡顿问题产生的原因错综复杂,比如:代码、内存、绘制、IO操作等,另一方面,有的场景下的卡顿问题,可能难易复现。工具选择CPU Profiler图形的形式展示执行时间,调用栈等信息全面,包含所有线程缺点:运行时开销严重,整体会变慢,可能会带偏我们优化的方向。使用:Debug.startMethodTracing("")Debug.stopMethodTracing();生

2022-02-04 15:35:27 344

原创 Android 性能优化(4)--布局优化

绘制原理与工具选择

2022-02-03 17:25:06 117

原创 Android 性能优化(3)--内存优化--(内存优化工具、内存管理机制、内存抖动、内存泄漏)

内存优化及工具Memory profiler特点方便直观线下使用使用Android studio工具点击MEMORY后,如下:可以看到当前应用运行总的大小是446M,java占44M,Native201,点击垃圾桶按钮旁边的下载图标按钮会得到如下具体数据shallow size 是自己的大小retained size 是引用链对象总共占用的大小Memory Analyzer特点强大的Java Heap分析工具,查找内存泄漏及内存占用生成整体报告、分析问题线下深入使用使

2022-02-03 15:43:54 107

原创 Android 性能优化(2)---启动优化---2(方法耗时获取与异步初始化)

启动优化内存优化网络优化优化工具:(1)Systrace:关注Frames,正常:绿色圆点丢帧:黄色或者红色–alerts栏(2)LayoutInspector(AS–tools–LayoutInspector)(3)可以通过Choreographer来获取FPS,Choreographer.getInstance().postFrameCallback()。如何优雅的获取界面的布局耗时常规方式:获取每个界面加载耗时 (对setContentView 记录时间)AOP/ArtHook

2022-02-02 17:16:49 229

原创 Android 性能优化(2)---启动优化--1(启动优化介绍+启动时间测量)

启动优化介绍(1)背景介绍为什么要进行启动优化?第一体验和八秒定律,用户接触app首先就是第一体验比较重要,其次,app如果打开时间超过8s,大概会流失70%的用户。(2)启动分类:冷启动、热启动、温启动冷启动:特点:耗时最多,衡量标准,流程:ClickEvent—>IPC–>Process.start—>ActivityThread—>bindApplication---->ActivityLifeCycle—>ViewRootImpl热启动:特点:最快

2022-02-02 11:04:52 152

原创 Android 固定View在键盘上方

简介1、提供工具类2、对外提供2种使用方式:a、根布局必须是RelativeLayout b、使用PopWindow实现。代码1、固定在键盘上方的控件Viewclass FixOnKeyBoardView : FrameLayout { constructor(context: Context) : super(context) constructor(context: Context, attrs: AttributeSet?) : this(context, attrs,.

2022-01-21 16:50:02 3213

原创 adb 和android开发常用命令

adb logcat -d time > 1.logadb logcat | grep wdf查看当前Activity :adb shell dumpsys window w | grep name=""查看当前栈顶的Activity :adb shell dumpsys activity | grep “mFocusedActivity”查看当前栈顶的Activity的Fragment :adb shell dumpsys activity your.package.name或者:adb

2021-04-19 16:15:15 228 3

原创 Kotlin 语法糖

1、变量声明不推荐使用 lateinit 和!!(容易空指针)// goodvar tv: TextView? = nulltv?.text = ""// badlateinit var tv: TextViewtv!!.text = ""2、可空参数与返回 + 类型转换// 可空参数与返回fun init(name: String?, age: Int?):String? { }// 类型转换 as?// Good(context as?

2021-03-28 02:00:18 508

原创 Mac brew update卡死 和 install 总是显示 No similarly named formulae found.解决

1、brew update 卡死问题卡死的问题,我是参考的下面这篇文章https://blog.csdn.net/evane1890/article/details/108795717(1)#更新Homebrewcd "$(brew --repo)"git remote set-url origin https://mirrors.ustc.edu.cn/brew.git#更新Homebrew-corecd "$(brew --repo)/Library/Taps/homebrew/hom

2021-03-04 11:05:48 15846 10

原创 算法:三线程打印

1 condation方式如下,其他方式参考https://danfeng.blog.csdn.net/article/details/112133256public class ThreeThreadPrintCondition { public static void main(String[] args) { ReentrantLock lock = new ReentrantLock(); Condition conditionA = lock.new

2021-02-07 15:45:11 322

原创 Android面试常见算法题目

1 三线程打印ABC7 如何实现一个lru8 如何定位链表尾部前面的第k个节点,写一下

2021-02-07 15:44:06 1699

原创 算法:链表

两数之和https://leetcode-cn.com/problems/add-two-numbers/思路:1、链表 head 记录初始链表,tempHead 记录当前点的链表2、输入l1 与 l2 长度可能不一致3、进位记录 carrypublic static ListNode addTwoNumbers(ListNode l1, ListNode l2) { int carry = 0; ListNode head = new ListNode();

2021-02-07 15:38:33 452

原创 算法:树

树的最大路径和https://leetcode-cn.com/problems/binary-tree-maximum-path-sum/思路:递归+遍历最大路径和按照一个树 比如【a,b,c】 实际是三选一问题:b+root 与c+root 或者 b+c+rootmaxSum 用于更新最大和,treeMaxSum int maxSum= Integer.MIN_VALUE; public int maxPathSum(TreeNode root) { treeMaxS

2021-02-07 15:35:01 383

原创 算法(二)数组

1 两数相加=指定的数据,题目要求如下:题目链接://给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 //// 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 //// //// 示例: //// 给定 nums = [2, 7, 11, 15], target = 9////因为 nums[0] + nums[1] = 2 + 7 = 9//所以返回 [0, 1]// //

2021-02-07 15:33:49 505

原创 算法(一)排序算法

零零落落

2021-02-07 15:23:46 609

原创 Android 其他问题点

1 Serializable与Parcelable 区别Sericalizable 是java 提供的进行序列化的方式,对对象整体序列化,更适合网络数据进行序列化的时候使用。Parcelable 是android提供的一种序列化的方式,可以将一个完整的对象进行分解,对部分分别序列化,效率更高,更适合内存中进行数据传输的时候使用。2 Android为什么使用Bundle 传输数据,为啥不是hashMap2个原因:(1)小的数据量:Bundle 内部封装了ArrayMap进行的存储,ArrayMap本

2021-01-25 03:47:26 337 1

原创 Android View第一次绘制

疑问1 Android 走生命周期的时候,View究竟是在哪个生命周期进行测量布局绘制的呢?2 在该生命周期中通知View的绘制流程是怎样的?解答1 Android的resume周期开始绘制的,这也是我们为什么在onResume的时候获取不到view的狂高2 下面来看下具体流程(view的绘制是通过ViewRootImp的scheduleTraversals方法,因此看下怎么从ActivityThread找到ViewRootImp的scheduleTraversals的调用的)直接来看Activ

2021-01-21 10:39:29 394

原创 app启动流程 、四大组件 、window、事件分发

zygote参考文章:https://blog.csdn.net/hongxue8888/article/details/102583663zygote 作用启动system-server孵化应用进程zygote 进程怎么启动的init进程启动后,加载init.rc 配置文件,其中zygote就是其中一个。zygote 是通过socket的通讯方式。app启动流程了解Linux下进程的启动方式2种方式都是通过fork这个函数启动的:fork函数返回2次,一次子进程返回一次父进程的返回,

2021-01-16 16:16:48 338

原创 Android apt 遇到问题的例子

这篇apt 的Demo 是为了解释我在编写apt 代码时遇到的一个问题。简单写一下步骤,解释下遇到的问题。 as 版本:4.1.1 (版本不同配置上可能会有所不同)前言这里就简单仿照ButterKnife写个BindV的注解。先看下最终的使用class MainActivity : AppCompatActivity() { @BindV(R.id.tv) // 1 注解 lateinit var tv: TextView; override fun onCreate(sa

2021-01-07 11:51:14 588

kotlin-for-android-develapers-中文

kotlin-for-android-develapers-中文.pdf文档 。提供给大家

2017-10-20

彩色圆形进度条

彩色圆形进度条

2017-05-17

xf-adobecc2015

AE用于产生注册码的 xf-adobecc2015

2017-05-04

Getting started WebRTC

Getting.Started.With.WebRTC.Sep.2013.ISBN.1782166300.pdf

2017-02-20

android事件分发机制

android事件分发机制

2016-12-29

VMware-MAC-patch-unlock-all-v120

VMware-MAC-patch-unlock-all-v120.zip 安装教程请查看本人博客

2016-12-16

Android 车牌识别

Android 车牌识别

2016-12-13

PHP 与MySQL+web开发相关文档

PHP 与MySQL+web开发相关文档

2016-12-13

window下本地git服务器搭建详解

window下本地git服务器搭建与使用详解

2016-11-18

pdfview基于我的一篇博客

http://blog.csdn.net/danfengw/article/details/50351673 基于这篇博客提供的源文件

2016-11-10

深入理解Bootstrap 电子 pdf

深入理解Bootstrap 电子 pdf

2016-11-10

tinkerDemo的两个apk可以安装试一下

tinkerDemo简单的实现了热补丁,具体的还没尝试,安装上baseApk(app-debug-1019-15-16-03)之后,将patch_signed_7zip放置到Environment.getExternalStorageDirectory()+File.separator;+ "FixPath"+File.separator+"patch_signed_7zip.apk";路径下面,如果你不能确定该路径,具体详见里面的说明。具体的实践详见博客。http://blog.csdn.net/danfengw/article/details/52848948

2016-10-19

EchartDemo

利用Echart在Android端实现柱状图饼图的展示

2016-02-18

tomcatplugin

tomcatplugin用于Ecplise中搭建Servelet时的插件使用

2016-02-18

apache-tomcat-7.0.63-windows-x64.zip

用于Serverlet服务器的搭建,作为搭建Servelet的插件使用

2016-02-15

SVN插件Tortoise

该SVN插件主要是用于Ecplise的SVN的配置,用于同步和管理代码

2016-01-31

SVN插件(Tortoise)

该SVN插件主要是用于ecplise的,用于代码版本管理

2016-01-31

录制gif动画工具

该工具可以用于录制gif动画,类似于我博客中的效果图

2015-12-01

反编译工具及其用法

APP反编译工具及其使用方法的说明,说明详细,使用简单。

2015-11-03

空空如也

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

TA关注的人

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