- 博客(63)
- 收藏
- 关注
原创 常见专业名词整理
CRM:Customer Relationship Management - 客户关系管理。ERP:Enterprise Resource Planning - 企业资源规划。IOT:Internet of Things - 物联网。
2024-04-02 13:55:39 129
原创 TS小记--
从clean-webpack-plugin.d.ts文件的内容可知,导出的是以一个对象属性的形式,所以我们在。安装html插件:html:5快速生成html文件。创建ts配置文件:tsconfig.json。Ts函数重载:需要先定义一系列的函数声明。-g全局安装,保证每个地方都可以使用。安装clean:避免dist文件缓存。安装clean:避免dist文件缓存。创建package.json文件。编写package.json文件。安装:避免dist文件缓存。引入ts-loader。编写config文件。
2024-04-02 13:38:37 405
原创 FFMpeg小记
1)下载:[yasm的下载链接](http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz)6)安装:make install(提示:Permission denied,就执行sudo make install)2.ffplay -ss 20 -t 10 input.mp4(-ss设置从s秒开始,播放视频的长度)3)切换路径: cd yasm-1.3.0。4)执行配置: ./configure。2)解压:把下载下来的压缩包进行解压。
2024-04-02 13:36:59 712
原创 PS快捷键记录
设置图像大小时,勾选缩放样式,则图层大小会跟着图像一起放大缩小。新建文档时,按住alt不松,取消会变成复位,可以复位预设。ctrl+k首选项,选择性能,设置保存的历史次数和文件夹。ctrl+O打开文件,勾选图片序列,选择一张图片即可。alt+小眼睛,展开收起其他所有图层。抓手工具:滚动所有窗口,所有图层滚动。图像大小:ctrl+shift+i。图层拖拽+shift,拖到原来位置。移动工具ctrl+移动可以自动选择。ctrl+shift+n新建图层。ctrl+shift+【最下方。ctrl+【向下移动图层。
2024-02-01 10:54:41 215
原创 ImageView的scaleType与adjustViewBounds详解
adjustViewBounds适用于在ImageView一边固定,一边为wrap_content的时候,设置成true,Imageview会根据图片的比例伸缩。(因为设置成固定大小时ImageView的宽高是确定的,设置成wrap_content,宽高即为图片宽高,也是确定的)两者区别:adjustViewBounds设置ImageView的大小,确定之后,根据scaleType确定图片在ImageView中的显示。图片处理:FIT_XY:不按原始比例伸缩图片,保证充满ImageViewCENTE
2021-05-07 19:03:07 321
原创 在线测试地址 mp3/mp4
mp3下载:http://downsc.chinaz.net/Files/DownLoad/sound1/201906/11582.mp3http://downsc.chinaz.net/files/download/sound1/201206/1638.mp3mp4下载:https://media.w3.org/2010/05/sintel/trailer.mp4http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4http://vjs.zencdn
2021-03-15 11:15:09 1371
原创 「省略…」中间文本自适应省略实现
产生原因:公司现有需求要求有其中一段文本自适应,之前经验以为不管在什么布局里面,内容只要设置了宽度就一定会显示出来,事实证明,会被文本内容挤走,所以设置的父容器的宽度实质上只是容器宽度,而不是实质的内容宽度,举例如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width=
2021-02-01 17:51:11 251
原创 Android常见属性作用解析
supportsRtl:简单来说就是“支持右到左”的布局,可以通过开发者模式的“强制右到左布局”来查看allowbackup:允许用户备份系统应用和第三方应用的apk安装包和应用数据(会造成恶意备份,造成数据丢失,所以一般设置成false)...
2020-12-24 10:19:29 207
原创 Android R文件常见问题
1.导入新项目,项目可以运行,R文件报红找不到。这种原因通常是R文件太大了(超过了Android Studio的上限25.6M了)AndroidStudio菜单—>Help—>Edit Custom Properties…在文件里添加如下配置:idea.max.intellisense.filesize=5000000...
2020-12-23 16:40:35 204 1
原创 Java的private,default,public,protected
public:可以被所有其他类所访问private:只能被类内部访问,如匿名内部类,内部类,静态内部类只能访问静态元素。protected:当前类,子类,同一包下类访问default:当前类,同一包中的类可以访问,声明时没有加修饰符。...
2020-12-13 21:20:27 97
原创 屏幕适配方案
1.项目中尽量使用dp,sp2.项目中尽量使用wrap_content,match_parent,weight3.图片采用.9图4.使用最小宽度限定符5.通过计算像素比(需要ui出的像素图,并且生成的文件很多),AndroidLayout适配:在代码里面直接修改像素,减少了文件,但是三方控件不能用AndroidAutoSize适配:通过在代码里面直接设置dp值6.刘海屏适配:添加一个固定的高度...
2020-12-09 10:11:28 91
原创 RelativeLayout和LinearLayout的比较
LinearLayout性能优于RelativeLayout在源码当中,由于RelativeLayout是相对布局,布局之间相互依赖,所以当测量完横向布局的时候,还需要进行一次纵向布局的测量,才能最终获得布局的大小,但是LinearLayout由于布局方向确定,在无weight的情况下之测量一次,即使有weight也只是测量部分view的大小。(详细请看源码)注意:在层级深度相同的情况下,建议使用LinearLayout约束布局的优点约束布局是相对布局的进化版,与RelativeLayout的区别在
2020-12-09 09:52:35 1217
原创 Java基础-int值和对象值
public static void main(String[] args) { Integer i = new Integer(100); Integer j = new Integer(100); int k = 100; Integer m = 100; Integer n = 100; System.out.println(i == j); System.out.println(k == i); System.out.println(
2020-12-07 21:26:49 209
原创 Handler消息机制
ThreadLocal中存放的是ThreadLocalMap1.为什么要使用handler?主线程不能执行耗时操作,否则会anr,所以需要用到多线程,如何让知道子线程中的任务何时完成,如何在子线程之间传递数据?所以使用handler实现线程间通信。线程安全主要是通过ThreadLocal实现的1.Handler 的基本原理?handler在子线程中通过sendmessage或者post发送消息到消息队列,然后looper通过looper.loop循环不停的从消息队列出取出消息,然后通
2020-12-04 15:29:45 209 1
原创 mvc,mvp,mvvm之间的区别
mvc:model:业务逻辑层,controller:交互层(activity来控制),view:视图层当需要请求数据时,view通知controller,controller调用model进行业务逻辑请求,请求完成之后,model将数据返回给view优点:将业务逻辑和视图很好的解耦缺点:activity中既是controller又是view,导致activity臃肿mvp:model,presenter,view当需要请求数据时,view通知presenter,presenter调用m
2020-12-04 13:34:03 97
原创 Android自定义View事件分发机制
1.为什么会有事件分发机制?因为在Activity中会有多个view重叠,当点击屏幕上的某个点时,需要知道是谁去处理这个事件。2.事件分发的是什么?什么是事件序列?TOUCH事件,事件序列指的是从用户点击屏幕开始到结束,中间产生的一系列的事件。3.事件有几种类型?MotionEvent.ACTION_DOWN 按下时产生的事件 MotionEvent.ACTION_MOVE 滑动时产生的事件 MotionEvent.ACTION_UP 抬起时产生的事件 MotionEvent.AC
2020-12-04 12:03:53 233
原创 Android自定义view面试
1.view绘制流程:measure,layout,drawmeasure:onMeasure,measureChild,measureChildren,setMeasureDimesion先测量子view的大小,最后测量自身的大小layout:onLayout,setFrame先确定自身的位置,然后调用child.layout()确定子类位置getLeft,getRight都是相对父控件的位置,相对原点的位置是getRawXMeasureSpec:32位,父类传递过来的值和自己的LayoutP
2020-12-03 22:00:06 1324
原创 Java基础
基本类型:int,short,long,byte,double,float,char,boolean引用类型:类,接口,数组,注解,枚举Java的String和StringBuffer和StringBuilder区别:String:是final类,不可更改,所以在代码里一段拼接文本最好不使用+=,因为会创建两个对象。StringBuffer是线程安全的,每一个方法都通过synchronized加锁所以平常使用比较多的是StringBuilder,如果要求线程安全会使用StringBuffer
2020-12-03 13:31:25 85
原创 Java-括号配对算法
public boolean bracket(String s) { Stack<Character> stack = new Stack(); char[] chars = s.toCharArray(); for (int i = 0; i < chars.length; i++) { if (chars[i] == '(' || chars[i] == '[') { stack.push(chars[i]); .
2020-12-02 17:19:18 173
原创 数据结构-判断单链表是否有环-java
//set集合 public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } Set<ListNode> listSet = new HashSet<>(); while (head != null) { if (listSet.con.
2020-12-02 15:53:46 75
原创 数据结构-单链表反转-java
1.递归法:时间复杂度O(n)递归的时间复杂度一般看层数,这个层数是n层,每层执行一次操作,所以是O(n)/*原理:把当前结点看做需要递归反转的点*/ public ListNode reverseList(ListNode head) { if(head == null || head.next == null){ return head; } ListNode curr = reverseList(head.nex
2020-12-02 15:21:02 105
原创 数据结构-单链表交换相邻两个元素-java
1.递归法:时间复杂度O/*原理:对每一个结点进行反转*/ public ListNode reverseList(ListNode head) { if(head == null || head.next == null){ return head; } ListNode curr = reverseList(head.next); head.next.next = head; head
2020-12-02 13:18:54 951
原创 数据结构-单链表的头插法、尾插法建立及遍历
//创建结点类class ListNode { int data; ListNode next;}/*头插法头插法原理:定义一个head头结点,之后添加元素在头节点和已有元素之间。*/public ListNode createListHead() { ListNode head = new ListNode(); head.next = null; for (int i = 1; i <= 5; i++) {
2020-12-02 11:58:35 2332 1
原创 Android Studio无法调试 Couldn‘t attach to process
方案1:端口被占用,需要杀死对应进程,但实际上该端口是AndroidStudio在使用。方案2:in android studio: tools->android->enable adb integration(this should be checked) uncheck this, then check again. this solved me this problem. (it restarts the adb integration)。方案3:如果项目引入了so库文
2020-11-03 15:15:19 2818
原创 批量删除本地git分支和远程git分支
批量删除本地git分支:git branch |grep ‘分支的关键字’ |xargs git branch -d批量删除远程分支:git branch -r |awk -F ‘[/]’ ‘/feature_/ {printf “%s\n”, $2}’ | xargs -I {} git push origin :{}样例分支:origin/feature_message...
2020-09-24 10:42:31 247
原创 Android面试
线程池的好处:线程池的重用避免了大多数线程的创建和销毁控制线程的并发数,太多线程同时开启可能会导致内存不够而崩溃管理线程,线程可以定时Art和DalvikDalvik:靠JIT,解释字节码art:靠AOT,在安装时,预编译字节码到机器语言1.占用空间大,安装时间更长2.系统性能提升,启动,运行更快h5在Android上渲染效率低,网页调用设备api比较难React nat...
2019-08-28 14:58:20 87
原创 Android面试-常见设计模式
1.观察者模式:一对多的依赖关系,一个对象状态改变,依赖的对象随之改变2.责任链模式:发送一个请求多个对象处理,将对象串成一条链,在链中决定谁来处理它,最终返回处理对象3.适配器模式:把一个接口转换为用户希望的另一个接口,实现数据和view的转换类适配器和对象适配器4.构建者模式:当一个对象需要很多参数,根据不同的参数可以构建不同的对象,实现复杂对象的构建5.单例模式:保证一个类只有一个...
2019-08-28 14:09:53 367
原创 Android面试-java基础
面向对象:封装,继承,多态封装:把客观事物封装成抽象类,暴露出来一些方法给用户,保护内部数据继承:某个对象获取另一个对象的所有属性和方法多态:类实例的相同方法有不同的表现形式类加载过程:BootStrap,Extension,AppAndroid:Boot即系统的,PathDex已有的即apk的,Dex1.通过classLoader将class加载到虚拟机,生成Class对象2....
2019-08-28 14:00:34 195
原创 volatile关键字的原理、使用场景
在之前学习单例的时候,看到定义变量的时候需要加上这个关键字,所以对于这个关键字查阅了一番资料进行整理。volatile是Java提供的一种轻量级的同步机制,同synchronized相比(synchronized通常称为重量级锁)。synchronized 所有加上synchronized 和 块语句,在多线程访问的时候,同一时刻只能有一个线程能够执行synchronized 修饰的方...
2019-07-26 15:12:18 532
原创 Android LayoutInflater.inflate(R.layout.activity_test, container,false)参数解析
LayoutInflater.inflate()的功能:将一段 XML 资源文件加载成为 Viewpublic View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot) { final Resources res = getContext().getResourc...
2019-07-26 13:59:57 2181
原创 Gradle sync failed: Cause: error in opening zip file Consult IDE log for more details (Help | Show
1、尝试用是 Tools-Android-Sync Project with Gradle Files 重新加载。2.在gradlewrapper-propoties中将下载地址复制到浏览器下载:https://services.gradle.org/distributions/gradle-3.3-all.zip3. 1、下载https://services.gradle.org/distri...
2018-03-02 16:10:23 12583
原创 数据存储
Android数据存储五种方式总结本文介绍Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据下面详细讲解这五种方式的特点第一种: 使用SharedPreferences存储数据 ...
2018-02-27 18:18:35 150
原创 屏幕适配
Android屏幕适配--六大适配方法(你必须知道)屏幕适配u 首先阐释一些术语和概念Ø 屏幕尺寸(screen size):实际的物理尺寸,屏幕的对角线测量。为了方便,Android把所有的屏幕尺寸分为了4个广义的大小:小、正常、大、更大。Ø 屏幕密度(screen density):屏幕占据的物理区域所含像素的个数,通常被称为dpi(dots per inch)即每英寸的像素点数。Ø ...
2018-02-27 18:15:11 122
原创 viewpager
1.使用FragmentPagerAdapter后viewpage的fragement内容不显示注意:适配器继承FragmentPagerAdapter后 不需要实现isViewFromObject和instantiateItem方法,写了会出现各种问题,我这里就是多写了isViewFromObject方法。PagerAdapter与FragmentPagerAdapter区别:PagerAdap...
2018-02-27 17:26:32 97
原创 day9-phone
1.杀毒界面1.从home界面设置点击跳转到杀毒界面,记得加break 给gv宫格列表的条目注册点击事件 gv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?&g...
2018-02-27 16:16:33 221
原创 android版本更新代码
package com.itheima.mobilesafe104;import android.app.Activity;import android.app.ProgressDialog;import android.content.DialogInterface;import android.content.Intent;import android.content.pm.ActivityI...
2018-02-24 11:08:50 1270
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人