- Android Compose 一个音视频APP——Magic Music Player
FranzLiszt1847
音乐appandroid音视频
MagicMusicAPPMagicMusicAPPMagicMusicAPP概述效果预览-视频资源功能预览Library歌曲播放效果预览歌曲播放依赖注入设置播放源播放进度上一首&下一首UI响应歌词歌词解析解析成行逐行解析视频播放AndroidView引入Exoplayer自定义Exoplayer样式横竖屏切换歌曲多任务下载下载处理通知栏前台服务媒体服务下载服务Other评论搜索搜索结果登录歌手详
- 在Compose中控制组件中数据的流速
Mr_Tony
JetPackandroid
文章目录一、场景描述二、代码示例1、第一种写法,使用MutableSharedFlow进行控制第二种写法:使用MutableIntState或者MutableStateFlow进行控制第三种写法,最简洁的写法三、参考链接一、场景描述在Compose中设计思想是分为状态和组件的,组件由状态控制。这个操作和传统的AndroidView不太一样。在Compose中对话框Dialog也是一个组件,其显示和
- Compose中添加Android原生控件
Mr_Tony
JetPackandroid
文章目录一、前言二、示例代码三、AndroidView的注意事项四、参考链接一、前言Compose自身组件有时候并不能完全满足要求,这里演示如何在Compose中添加原生组件及其注意事项二、示例代码@ComposablefunAndroidTextView(modifier:Modifier){AndroidView(modifier=modifier,factory={ctx->//以下的方式也
- Android Jetpack Compose实现Spinner
Thousand Dust
笔记androidandroidjavakotlinandroidjetpack
在我写项目的时候要用到Spinner。找了找,目前compose里好像还没有类似Spinner的函数。使用AndroidView来使用Spinner的话又会出现一些问题。于是自己使用Compose实现了个简易的Spinner组件。先写好Spinner函数/***@parammodifier应用于布局的修饰符*@paramdataArray数据数组*@paramposition选择的item*@pa
- Android Jetpack Compose 中使用LazyColumn+Row实现 DataTables
wwww??
安卓组件kotlinandroidstudioandroidjetpackandroid
前言从网络中查询回来的数据的数据量和数据的属性有点多,所以想像excel表格那样展示出来,发现Android官方文档中没有类似的实现,然后在material官网中看见了我想要的实现效果—Data-Tables(需要梯子),但是!!!里面居然没有安卓的实现方法,更不用说存在Compose的实现方法了。androidview中有表格布局和网格布局也可以用,但就要使用androidviewbinding
- Jetpack Compose中使用Android View
举儿
ComposeComposeAndroid布局Compose与Android
使用AndroidView创建日历@ComposablefunAndroidViewPage(){AndroidView(factory={CalendarView(it)},modifier=Modifier.fillMaxWidth(),update={it.setOnDateChangeListener{view,year,month,day->Toast.makeText(view.con
- Android实现圆角控件
ITRenj
Android实现圆角控件在Android开发过程中,控件的使用是最常见、最基本的。但是我们都知道,在Android中的控件都是矩形的,而在实际项目中,我们的UI设计师经常会使用一些圆角的控件。那么,在Android有哪些方式可以实现圆角控件了,在使用和适配的过程当中,又有哪些问题了。下面,我将介绍Android中常见的实现圆角方式。自定义方式实现圆角:androidView.gif常见实现方式使
- android
梦里花落知多少_9ce8
Androidview的一些认识requestLayout和invalidate的区别为什么ViewGroup的onDraw()方法不执行View的绘制-draw流程详解Android渲染机制——SurfaceFlingerAndroid回炉系列之SurfaceflingerSurfaceView与view区别详解SharePreference原理及跨进程数据共享的问题我Android匿名共享内存
- Android View闪烁动画AlphaAnimation,Kotlin
zhangphil
kotlinAndroidandroidkotlin
AndroidView闪烁动画AlphaAnimation,KotlinprivatefunflickerAnimation(view:View?){valanimation:Animation=AlphaAnimation(1f,0f)//不透明到透明。animation.duration=500//1次过程时长。animation.interpolator=LinearInterpolator
- 解密setContentView
喜健_staringOrz
56e2-iufmpmn9741169.png我们先来看一下Android中View视图在Activity中的整个层级关系:androidView视图.png包含关系:Activity中有个成员变量Window,Window是个抽象类,它的实现类是PhoneWindow,PhoneWindow有一个成员变量DecorView.Phonewindow对象创建的开始简要说一下整个调用流程:入口:Act
- Android 匿名共享内存的使用
momxmo
AndroidView的绘制是如何把数据传递给SurfaceFlinger的呢?跨进程通信时,数据量大于1MB要怎么传递呢?用匿名共享内存(Ashmem)是个不错的选择,它不仅可以减少内存复制的次数,还没有内存大小的限制。这篇文章介绍在Java层如何使用匿名共享内存在进程间传递数据。1.简述Android的匿名共享内存(Ashmem)基于Linux的共享内存,都是在临时文件系统(tmpfs)上创建
- Android View的渲染过程
alexhilton
原文链接AndroidView的渲染过程对于安卓开发猿来说,每天都会跟布局打交道,那么从我们写的一个布局文件,到运行后可视化的视图页面,这么长的时间内到底发生了啥呢?今天我们就一起来探询这一旅程。[图片上传失败...(image-951964-1687781701075)]Viewtree的创建过程布局文件的生成过程一般情况下,一个布局写好了,如果不是特别复杂的布局,那么当把布局文件塞给Activ
- [学习笔记] Android群英传:Android动画机制与处理技巧
尘埃zza
AndroidAndroid动画
主要内容有:Android视图动画‘Android属性动画Android动画实例一.AndroidView动画框架Animation动画框架定义了透明度,旋转,缩放个移动等几种动画,而且控制了整个的View,实现原理是每次绘制视图的时候View所在的ViewGroup中drawChild函数获取该View的Animation的Transformation值,然后调用了canvas.concat方法
- Android全埋点解决方案读书笔记(全)与最佳方案总结
blithe_y
读书笔记androidjava安卓kotlinflutter
原创不易,转载请著名出处,谢谢一.全埋点概述事件类型事件定义AppStart应用程序启动,包含冷启动/热启动AppEnd应用程序退出,包含正常退出,home按下,程序强杀/崩溃AppViewScreen页面浏览,包含切换Activity/FragmentAppClick控件点击1.AndroidView类型序号控件名监听方法1Button,CheckedTextView,TextView,Imag
- Android :安卓学习笔记之 Android View 的基础知识和冲突事件处理
JMW1407
Androidandroidandroidstudioview
AndroidView的简单理解和使用AndroidView1、View的基础知识1.1什么是View1.2View的位置参数1.3MotionEvent和TouchSlop1.3.1.MotionEvent1.3.2.TouchSlop1.4VelocityTracker、GestureDetector和Scroller1.4.1VelocityTracker:速度追踪1.4.2GestureD
- Jetpack:029-Jetpack中的网格布局
talk_8
一起TalkAndroidJetPack吧Jetpackcompose网格布局LazyVerticalGri
文章目录1.概念介绍2.使用方法3.代码与效果3.1示例代码3.2运行效果4.内容总结我们在上一章回中介绍了Jetpack中Card相关的内容,本章回中主要介网格布局。闲话休提,让我们一起TalkAndroidJetpack吧!1.概念介绍我们在本章回中介绍的网格布局是一种类似表格的布局组件,它提供像表格一样的窗口,开发人员只需要在窗口中放入组件就可以,如果大家有使用AndroidView开发程序
- View 绘制流程梳理及 Measure 过程详解
多做总结
androidview
View的工作原理上View绘制流程梳理及Measure过程详解发表于2016-09-11|分类于AndroidView|-文章来源:itsCoder的WeeklyBolg项目itsCoder主页:http://itscoder.com/作者:yongyu0102审阅者:hymane1前言笔记内容源于Android开发艺术探索。View是Android中所有控件的基类,例如Button和TextV
- Android view绘制流程详解(二)View的绘制
蒋八九
Androidandroid
Androidview绘制流程详解分为两部分:ViewTree的生成View的绘制View的绘制流程一、ActivityThread的RESUME_ACTIVITY消息当Activity的H接收到RESUME_ACTIVITY消息的时候,调用了handleResumeActivity方法。caseRESUME_ACTIVITY:SomeArgsargs=(SomeArgs)msg.obj;hand
- Compose和AndroidView的交互
儿歌八万首
jetpackandroidkotlincompose
1、在ComposeUI中加载AndroidView控件Compose中可以加载AndroidView还是比较简单的,直接引入AndroidView来加载AndroidView布局文件。@ComposablefunGreeting(name:String){Column{Text(text="Hello$name!")LoadAndroidView(name)}}/***Compose中加载And
- Compose 和 Android 传统View 互相调用
氦客
Compose从入门到深入androidCompose互相调用Android传统View双层嵌套
1.前言Compose具有超强的兼容性,兼容现有的所有代码,Compose能够与现有View体系并存,可实现渐进式替换。这就很有意义了,我们可以在现有项目中一小块一小块逐步地替换Compose,或者在旧项目中实现新的需求的时候,使用Compose。今天,我们就来演示一下,Compose和AndroidView怎么互相调用,以及在双层嵌套(原生View嵌套Compose,Compose中又嵌套原生V
- Jetpack Compose中的绘制流程和自定义布局
川峰
JetpackComposeandroidJetpackComposeCompose绘制流程Compose自定义布局
JetpackCompose中绘制流程的三个阶段与大多数其他界面工具包一样,Compose会通过几个不同的“阶段”来渲染帧。如果我们观察一下AndroidView系统,就会发现它有3个主要阶段:测量、布局和绘制。Compose和它非常相似,但开头多了一个叫做“组合”的重要阶段。Compose有3个主要的阶段:组合:要显示什么样的界面。Compose运行Composable可组合函数并创建Layou
- Android View拖拽/拖放DragAndDrop自定义View.DragShadowBuilder,Kotlin(2)
zhangphil
kotlinAndroidandroidkotlin1024程序员节
AndroidView拖拽/拖放DragAndDrop自定义View.DragShadowBuilder,Kotlin(2)importandroid.graphics.Canvasimportandroid.graphics.Pointimportandroid.graphics.drawable.ColorDrawableimportandroid.os.Bundleimportandroid
- Android ViewGroup的事件分发分析(上)
xadlovezy
最近在查阅AndroidView的事件分发相关的知识,经过从网上查找和自己查阅相关源码,最终以一个Demo的形势分析下ViewGroup事件分发相关的知识点(感谢鸿神AndroidViewGroup事件分发机制)。下面进入正题。先自定义一个Button和一个ViewGroup见代码。MyButton.java代码publicclassMyButtonextendsandroid.support.v
- Android View拖拽startDragAndDrop,Kotlin
zhangphil
Androidkotlinandroidkotlin
AndroidView拖拽startDragAndDrop,Kotlinimportandroid.os.Bundleimportandroid.util.Logimportandroid.view.DragEventimportandroid.view.Viewimportandroid.view.View.OnDragListenerimportandroid.view.View.OnLong
- Android View移动分析对比
大猫猴来了
背景在android开发中,经常会遇到view移动的需求。仔细一想,移动的方式有很多种啊,到底用那种适合,都有什么影响呢?下面通过本篇文章给大家介绍androidview移动的几种主要方法,并给出对比图.前提说明本文只考虑left情况.top,right,bottom,情况都类似,不重复说.知识提示-View属性都啥意思?mLeftView左边距,即View的左边距离父View左边的距离针对Vie
- Compose和AndroidView的交互
儿歌八万首
1、在ComposeUI中加载AndroidView控件Compose中可以加载AndroidView还是比较简单的,直接引入AndroidView来加载AndroidView布局文件。@ComposablefunGreeting(name:String){Column{Text(text="Hello$name!")LoadAndroidView(name)}}/***Compose中加载And
- Android View 点击特效 TouchEffects,方便快速的为全局控件添加点击效果
Wei_Leng
Android不错文章转载
TouchEffects项目地址:likaiyuan559/TouchEffects简介:AndroidView点击特效TouchEffects,方便快速的为全局控件添加点击效果更多:作者提Bug标签:TouchEffects能够帮助你更快速方便的增加点击时候的效果,TouchEffects的目标是打造一个稳定、全面、且能更方便的自定义及个性化的一款点击效果框架。功能特点:只需要几行代码便能为全局
- TouchEffects - Android View点击特效
KarenChia
Android开发技术androidTouchEffects点击特效
官网GitHub-likaiyuan559/TouchEffects:AndroidView点击特效TouchEffects,几行代码为所有控件添加点击效果项目简介AndroidView点击特效TouchEffects,几行代码为所有控件添加点击效果TouchEffects能够帮助你更快速方便的增加点击时候的效果,TouchEffects的目标是打造一个稳定、全面、且能更方便的自定义及个性化的一款
- Android弹幕实现现状与原理浅析
Android_杜小菜
弹幕实现对比目前的弹幕实现方案,主要有以下几种实现方式。AndroidView实现通过Android已有的控件实现布局、绘制,高效的话需要自定义缓存逻辑,复用弹幕itemView,主要是text的绘制、样式处理以及位移动画的实现。B站Danmaku开源的弹幕库:https://github.com/bilibili/DanmakuFlameMaster比较成熟稳定,功能齐全,满足现有的所有场景需要
- flutter插件基础之调用原生界面和flutter组件互相显示功能(四)
小白哥有话说
前几篇我们对flutter中的数据的传递层MethodChannel和监听响应层EventChannel进行了全面的介绍和案例展示,本篇开始讲解flutter中如何显示原生View,如Android中的AndroidView的显示和iOS中的UiKitView的显示过程像小孩一样愉快的嗨起来.jpg来吧,开始~~~展示!四.flutter代码中显示原生View1.显示原生View的原理说明1.1.
- scala的option和some
矮蛋蛋
编程scala
原文地址:
http://blog.sina.com.cn/s/blog_68af3f090100qkt8.html
对于学习 Scala 的 Java™ 开发人员来说,对象是一个比较自然、简单的入口点。在 本系列 前几期文章中,我介绍了 Scala 中一些面向对象的编程方法,这些方法实际上与 Java 编程的区别不是很大。我还向您展示了 Scala 如何重新应用传统的面向对象概念,找到其缺点
- NullPointerException
Cb123456
androidBaseAdapter
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getImportantForAccessibility()' on a null object reference
出现以上异常.然后就在baidu上
- PHP使用文件和目录
天子之骄
php文件和目录读取和写入php验证文件php锁定文件
PHP使用文件和目录
1.使用include()包含文件
(1):使用include()从一个被包含文档返回一个值
(2):在控制结构中使用include()
include_once()函数需要一个包含文件的路径,此外,第一次调用它的情况和include()一样,如果在脚本执行中再次对同一个文件调用,那么这个文件不会再次包含。
在php.ini文件中设置
- SQL SELECT DISTINCT 语句
何必如此
sql
SELECT DISTINCT 语句用于返回唯一不同的值。
SQL SELECT DISTINCT 语句
在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
DISTINCT 关键词用于返回唯一不同的值。
SQL SELECT DISTINCT 语法
SELECT DISTINCT column_name,column_name
F
- java冒泡排序
3213213333332132
java冒泡排序
package com.algorithm;
/**
* @Description 冒泡
* @author FuJianyong
* 2015-1-22上午09:58:39
*/
public class MaoPao {
public static void main(String[] args) {
int[] mao = {17,50,26,18,9,10
- struts2.18 +json,struts2-json-plugin-2.1.8.1.jar配置及问题!
7454103
DAOspringAjaxjsonqq
struts2.18 出来有段时间了! (貌似是 稳定版)
闲时研究下下! 貌似 sruts2 搭配 json 做 ajax 很吃香!
实践了下下! 不当之处请绕过! 呵呵
网上一大堆 struts2+json 不过大多的json 插件 都是 jsonplugin.34.jar
strut
- struts2 数据标签说明
darkranger
jspbeanstrutsservletScheme
数据标签主要用于提供各种数据访问相关的功能,包括显示一个Action里的属性,以及生成国际化输出等功能
数据标签主要包括:
action :该标签用于在JSP页面中直接调用一个Action,通过指定executeResult参数,还可将该Action的处理结果包含到本页面来。
bean :该标签用于创建一个javabean实例。如果指定了id属性,则可以将创建的javabean实例放入Sta
- 链表.简单的链表节点构建
aijuans
编程技巧
/*编程环境WIN-TC*/ #include "stdio.h" #include "conio.h"
#define NODE(name, key_word, help) \ Node name[1]={{NULL, NULL, NULL, key_word, help}}
typedef struct node { &nbs
- tomcat下jndi的三种配置方式
avords
tomcat
jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称
访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。
tomcat配置
- 关于敏捷的一些想法
houxinyou
敏捷
从网上看到这样一句话:“敏捷开发的最重要目标就是:满足用户多变的需求,说白了就是最大程度的让客户满意。”
感觉表达的不太清楚。
感觉容易被人误解的地方主要在“用户多变的需求”上。
第一种多变,实际上就是没有从根本上了解了用户的需求。用户的需求实际是稳定的,只是比较多,也比较混乱,用户一般只能了解自己的那一小部分,所以没有用户能清楚的表达出整体需求。而由于各种条件的,用户表达自己那一部分时也有
- 富养还是穷养,决定孩子的一生
bijian1013
教育人生
是什么决定孩子未来物质能否丰盛?为什么说寒门很难出贵子,三代才能出贵族?真的是父母必须有钱,才能大概率保证孩子未来富有吗?-----作者:@李雪爱与自由
事实并非由物质决定,而是由心灵决定。一朋友富有而且修养气质很好,兄弟姐妹也都如此。她的童年时代,物质上大家都很贫乏,但妈妈总是保持生活中的美感,时不时给孩子们带回一些美好小玩意,从来不对孩子传递生活艰辛、金钱来之不易、要懂得珍惜
- oracle 日期时间格式转化
征客丶
oracle
oracle 系统时间有 SYSDATE 与 SYSTIMESTAMP;
SYSDATE:不支持毫秒,取的是系统时间;
SYSTIMESTAMP:支持毫秒,日期,时间是给时区转换的,秒和毫秒是取的系统的。
日期转字符窜:
一、不取毫秒:
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
简要说明,
YYYY 年
MM 月
- 【Scala六】分析Spark源代码总结的Scala语法四
bit1129
scala
1. apply语法
FileShuffleBlockManager中定义的类ShuffleFileGroup,定义:
private class ShuffleFileGroup(val shuffleId: Int, val fileId: Int, val files: Array[File]) {
...
def apply(bucketId
- Erlang中有意思的bug
bookjovi
erlang
代码中常有一些很搞笑的bug,如下面的一行代码被调用两次(Erlang beam)
commit f667e4a47b07b07ed035073b94d699ff5fe0ba9b
Author: Jovi Zhang <
[email protected]>
Date: Fri Dec 2 16:19:22 2011 +0100
erts:
- 移位打印10进制数转16进制-2008-08-18
ljy325
java基础
/**
* Description 移位打印10进制的16进制形式
* Creation Date 15-08-2008 9:00
* @author 卢俊宇
* @version 1.0
*
*/
public class PrintHex {
// 备选字符
static final char di
- 读《研磨设计模式》-代码笔记-组合模式
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
abstract class Component {
public abstract void printStruct(Str
- 利用cmd命令将.class文件打包成jar
chenyu19891124
cmdjar
cmd命令打jar是如下实现:
在运行里输入cmd,利用cmd命令进入到本地的工作盘符。(如我的是D盘下的文件有此路径 D:\workspace\prpall\WEB-INF\classes)
现在是想把D:\workspace\prpall\WEB-INF\classes路径下所有的文件打包成prpall.jar。然后继续如下操作:
cd D: 回车
cd workspace/prpal
- [原创]JWFD v0.96 工作流系统二次开发包 for Eclipse 简要说明
comsci
eclipse设计模式算法工作swing
JWFD v0.96 工作流系统二次开发包 for Eclipse 简要说明
&nb
- SecureCRT右键粘贴的设置
daizj
secureCRT右键粘贴
一般都习惯鼠标右键自动粘贴的功能,对于SecureCRT6.7.5 ,这个功能也已经是默认配置了。
老版本的SecureCRT其实也有这个功能,只是不是默认设置,很多人不知道罢了。
菜单:
Options->Global Options ...->Terminal
右边有个Mouse的选项块。
Copy on Select
Paste on Right/Middle
- Linux 软链接和硬链接
dongwei_6688
linux
1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连
- DIV底部自适应
dcj3sjt126com
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- Centos6.5使用yum安装mysql——快速上手必备
dcj3sjt126com
mysql
第1步、yum安装mysql
[root@stonex ~]# yum -y install mysql-server
安装结果:
Installed:
mysql-server.x86_64 0:5.1.73-3.el6_5 &nb
- 如何调试JDK源码
frank1234
jdk
相信各位小伙伴们跟我一样,想通过JDK源码来学习Java,比如collections包,java.util.concurrent包。
可惜的是sun提供的jdk并不能查看运行中的局部变量,需要重新编译一下rt.jar。
下面是编译jdk的具体步骤:
1.把C:\java\jdk1.6.0_26\sr
- Maximal Rectangle
hcx2013
max
Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and return its area.
public class Solution {
public int maximalRectangle(char[][] matrix)
- Spring MVC测试框架详解——服务端测试
jinnianshilongnian
spring mvc test
随着RESTful Web Service的流行,测试对外的Service是否满足期望也变的必要的。从Spring 3.2开始Spring了Spring Web测试框架,如果版本低于3.2,请使用spring-test-mvc项目(合并到spring3.2中了)。
Spring MVC测试框架提供了对服务器端和客户端(基于RestTemplate的客户端)提供了支持。
&nbs
- Linux64位操作系统(CentOS6.6)上如何编译hadoop2.4.0
liyong0802
hadoop
一、准备编译软件
1.在官网下载jdk1.7、maven3.2.1、ant1.9.4,解压设置好环境变量就可以用。
环境变量设置如下:
(1)执行vim /etc/profile
(2)在文件尾部加入:
export JAVA_HOME=/home/spark/jdk1.7
export MAVEN_HOME=/ho
- StatusBar 字体白色
pangyulei
status
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
/*you'll also need to set UIViewControllerBasedStatusBarAppearance to NO in the plist file if you use this method
- 如何分析Java虚拟机死锁
sesame
javathreadoracle虚拟机jdbc
英文资料:
Thread Dump and Concurrency Locks
Thread dumps are very useful for diagnosing synchronization related problems such as deadlocks on object monitors. Ctrl-\ on Solaris/Linux or Ctrl-B
- 位运算简介及实用技巧(一):基础篇
tw_wangzhengquan
位运算
http://www.matrix67.com/blog/archives/263
去年年底写的关于位运算的日志是这个Blog里少数大受欢迎的文章之一,很多人都希望我能不断完善那篇文章。后来我看到了不少其它的资料,学习到了更多关于位运算的知识,有了重新整理位运算技巧的想法。从今天起我就开始写这一系列位运算讲解文章,与其说是原来那篇文章的follow-up,不如说是一个r
- jsearch的索引文件结构
yangshangchuan
搜索引擎jsearch全文检索信息检索word分词
jsearch是一个高性能的全文检索工具包,基于倒排索引,基于java8,类似于lucene,但更轻量级。
jsearch的索引文件结构定义如下:
1、一个词的索引由=分割的三部分组成: 第一部分是词 第二部分是这个词在多少