- Android知识点目录
迷路啦
Androidandroidjava知识点
本人参考了一本书籍,但是那本书比较“坑”,没有很详细的介绍各个知识点,都还需要别人去单独搜索查询详细资料,那这本书实际就只是来了解个目录了。。。持续更新中...第1章Android触摸事件传递机制1.1触摸事件的类型1.2事件传递的三个阶段1.3View的事件传递机制1.4ViewGroup的事件传递机制触摸事件的分析与总结第2章AndroidView的绘制流程2.1绘制的整体流程2.2Measu
- Android知识点2
面具猴
1.DrawerLayout可滑动范围的设置通过反射mEdgeSize属性实现:privatevoidsetDrawerRange(DrawerLayoutdrawerLayout){FieldmDragger=null;try{mDragger=drawerLayout.getClass().getDeclaredField("mLeftDragger");}catch(NoSuchFieldE
- android glide资源图片的宽高,Android知识点——Glide获取图片宽高
国金鹏
androidglide资源图片的宽高
先扯两句先很负责任的说一下,这个内容也是百度来的,但是很不负责任的是,当初只记录解决方案,忘了记录是查看的哪篇博客了,这里先对不知道借鉴的谁表示感谢。无法分享链接,就厚着脸皮把(转)字去掉了,请大家谅解。先提供一下Android知识点——目录的链接,然后让我们进入正题。正文实际上,这篇博客所说的内容并不是所有人都可以用到,毕竟大多数时候,我们只需要展示图片,而并不需要知道图片的宽高;有的时候我们只
- Android知识点——Retrofit+RxJava+OkHttp(下)使用
半寿翁
Android知识点android
先扯两句好了,上一篇闲扯过后,算是将我为什么会把Retrofit说出来了吧(虽然好像什么都没说),当然还有其他框架,作为一个懒人,我这里就不加以阐述了,还是进入整体,开始进入我们的使用的部分。还是先上我的Git库MyBaseApplication(https://github.com/BanShouWeng/MyBaseApplication)并给大家展示个神器,叫Android知识点——目录,好
- Android知识点——Retrofit+RxJava+OkHttp(上)闲扯
半寿翁
Android知识点android
先扯两句很久不扯了,刚敲出来这四个字的时候,还真把自己弄得愣了一下。首先对这段时间关注我的博客的说声抱歉,前段时间有点事,断了一段时间,今后会尽量避免的,嘿嘿。当然原本的套路今天应该写的是RecyclerView.Adapter的封装,不过因为又踏上了找工作的征程,所只好把这个相对更重要一些的部分拿到前面了。这篇主要是分析一下我用过的一些框架,借机传达一些个人在开发中的一些小意见,没有兴趣的可以直
- Android面试题 2018
一点墨汁
转自:https://juejin.im/post/5af82ee1f265da0b934865baAndroid面试题整理(2018)本文分为Java基础、Android知识点、设计模式、算法、网络等,抛砖引玉,大家可酌情服用水平一般,个人整理题目来源于网络搜集结合右下角目录食用更佳不再更新了(作者两年经验,断断续续写了四个月左右,之后集中面了魔都30多家一二线的互联网公司,拿到了2/3的off
- Android知识点-虚拟按键
半寿翁
这篇没啥说的,就是记录一下虚拟按键的实现方案,当然,随着全面屏的手势操作普及,虚拟按键也快淘汰了,如果淘汰的说法不对,业界大佬也别喷我,就当一个小菜鸟的新年愿望了。隐藏虚拟按键Windowwindow=getWindow();window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS|WindowManager.Layo
- Android知识点-圆角
半寿翁
Android知识点android
先扯两句不知道多长时间没有登录发文章了,正好今天不太忙进来看一眼,然后看到好多人都已经开始自己公众号了,看看自己的工作年限也不短了,可是感觉好久没有干正事了,还是老老实实打开文档开始写吧。正文随着UI越来越美观,原本直来直去的布局样式越来越不受喜欢,圆角样式,这个最简单的优化方案在越来越多的场合下被应用到。而具体怎么样才能展示出圆角的效果,相比大家都有N多中方案,我这里就列举一些自己常用的方案吧。
- Android知识点-RecyclerView notifyItemChanged(position)返回ViewHolder数据有误
半寿翁
现象 常在路边走,哪有不湿鞋。 这不就有一个需求,让做一个列表的单条目刷新,多简单的一个需求啊,简简单单的CV之后,代码就敲完了,然后手贱了一小下,做了个自测,然后,悲剧就这么出现了。 具体需求我已经记不住了,这里模拟一下类似的情况,自定义一个ViewHolder,其中有一个参数count,用于记录当前ViewHolder刷新了多少次,然后通过TextView展示出来即可。 布局: 自定
- android知识点1之javascript和anroid之间的互相调用
hhw199112
javascript前端开发语言
1.javascript代码//javascript方法android调用的方法functionTest(parm){document.getElementById("result").value=parm;}//js调用安卓方法letparm="0001;0002";alert(parm);setTimeout(android.toJump(parm),1000);2.android代码webV
- Android知识点总结
Karma1026
1.线程池线程池主要解决了两个问题:1.当执行大量异步任务时线程池能够提供更好的性能,避免线程的频繁创建和销毁2.提供了一种资源限制和管理的手段,比如可以限制线程的个数,动态新增线程等这种缓存对象实例的线程思想在Android中也有应用,例如Handler中使用到的Message消息池。在java中的线程池是用ThreadPoolExecutor类来实现的,它的构造方法中有一系列的参数需要指定:1
- Android知识点 ArrayMap SparseArray
StephenLau
ArrayMapSparseArray问题:ArrayMapSparseArray的数据结构是怎么样的?双数组结构。ArrayMap第一个数组元素是key的hashValue,对应第二个数组的一对key-value。通过二分查找进行插入。SparseArray第一个数组是int类型的key,第二个数组元素是value为了更进一步优化key是int类型的Map,Android再次提供效率更高的数据结
- Android知识点整理
music score
android
关键点ActivityFragment调试应用处理应用程序配置Intent和Intent过滤器会使用Context后台处理指南Android的数据隐私Android网络数据安全教程Android中的依赖项注入内容提供程序Android内存管理概览一些重要的库1.Glide是一个Android上的图片加载和缓存库;2.Room是Android架构组件的一部分,Room持久性库在SQLite上提供了一
- Android知识点整理答案
方白羽lw
一、数据存储1.掌握Android的3种本地数据存储方式以及应用场景第一种:使用SharedPreferences存储数据适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。比如应用程序的各种配置信息(如是否打开音效、是否使用震动效果、小游戏的玩家积分等),解锁口令密码等核心原理:保存基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息。通过DD
- Android知识点
灵猫小西
AndroidAndroidStudioandroid面试
自己用来记录的,不是很完整,有需要可参考一、四大组件1、Activity(1)生命周期onCreate()->onStart()->onResume()->onPause()->onStop()->onDestory()A->BonPause(A)->onCreate(B)->onStart(B)->onResume(B)->onStop(A)A->HomeonPause(A)->onStop(A
- Android知识点归纳总结
QY’UniverseSpace
Android开发个人资源转发资源安卓移动开发android深度学习知识点总结
文章目录一、Android四大组件二、Fragment相关三、动画相关四、布局相关五、数据存储六、线程、进程七、网络八、WebView九、图片十、Camera相关十一、音视频相关十二、ViewPager相关十三、RecyclerView相关十四、Canvas相关十五、传感器相关十六、性能优化十七、UI适配十八、Android中的Context十九、序列化与反序列化二十、JSON解析二十一、二维码二
- Android知识点大扫描
wapysun
移动开发ui数据库
Android知识点大扫描什么是3G3G,全称为3rdGeneration,中文含义就是指第三代数字通信。所谓3G,是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统。3G只是一种通信技术标准,符合这个标准的技术有WCDMA、CDMA2000、TD-SCDMA三种制式。中国联通使用的是WCDMA(世界上大部分3G网络都采用的是该标准);中国电信使用的是CDMA2000(日、韩和北美使用
- Android知识点汇总
九天360
Java基础谈谈ArrayList和LinkList的区别ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。两个都是多线程不安全。Frommid
- Android知识点(转)——Compilation failed; see the compiler error output for details.
半寿翁
先扯两句 首先声明,这篇博客解决方案取自Monkey_King_Bar的解决rg.gradle.api.internal.tasks.compile.CompilationFailedException:Compilationfailed 可以看得出来,这篇博客实际是解决CompilationFailedException的解决方案的,当初我搜索的时候也是遇到了类似的bug。不过正确的代码都是
- Android开发中基础知识概括
join_xiao
Android基础Android开发知识体系结构
Android知识点回顾:要学习Android首先要对Android的知识体系做一个初步的了解。俗话说“工欲善其事必先利其器”就是这个道理,我们首先要知道学习Android会学到那些知识点,我初步的整理了一下:一、基础知识Java基础数据结构(要做一个初步的了解:例如栈和队列,基本的算法)面向对象编程的思想(注:这一点非常重要)设计模式(注意:这里的设计模式并不是分层模式;Java常用的23种设计
- 4面字节跳动拿到2-2-Offer,入职就是30K16薪,全靠这份Android知识点PDF大全
m0_64933109
程序员经验分享面试android
自我介绍介绍下Android的mvc/mvp/mvvmview的事件分发机制viewGroup怎么知道view有没有消费事件写一个单例模式(解释单例模式中的sync,双锁,volidate)算法题目:有A和B两个有序数组(数组元素不重复),给出sum,请找到A和B中所有相加和为sum的序列对(面头条遇到的)A:[1,4,5]B:[3,4,6]sum=8output1,1,2,0=>becauseA
- Android知识点
颜如舜华丶
android
目录1.drawable和mipmap区别。1.drawable和mipmap区别。mipmap:主要用于存放应用程序启动时需要的启动图标,包括应用图标和启动时的动画图标。drawable:主要用于存放应用程序中的各种图片资源,包括应用程序中使用的图标、按钮、背景等。参考文章:Android中drawable和mipmap到底有什么区别-掘金
- Kotlin_android知识点
RungBy
Androidandroidkotlin
--kotlin中变量和函数非空和可空的处理Kotlin——初级篇(六):空类型、空安全、非空断言、类型转换等特性总结在kotlin中,所有类型变量都是非空变量,也就是说,默认是不会空指针的但是如果我们需要赋值一个变量为空,就需要在变量类型后添加?varisRunning:Boolean=false//报错isRunning=nullvarisRunning:Boolean?=false//编译通
- android知识点—阿里内部Android规范文档(转)
岁月静好浅笑安然
阿里内部Android规范文档一份合格的代码不应只满足于实现功能,更应该遵循良好的规范.遵循良好的代码规范有利于:提升程序稳定性,减少代码隐患,降低故障率;增强可扩展性,大幅提高维护效率;统一标准,提升多人协作效率;方便新人快速上手,在项目组人员发生变动时保证项目进度;这里梳理一下Android开发过程中需要注意的一些地方,包括多个部分,另外根据约束力强弱分为两类:强制:如果不遵守会导致代码严重混
- Android 开发学习笔记:七大知识点板块汇总
Android每日一讲
Android开发Android工程师移动开发android学习java程序人生职场和发展
前言我从事Android开发行业也有些年头,工作期间也接触过很多Android开发者,因此也非常清楚程序员最大的限制并非年龄而是实力;但大多数初中级Android工程师,想要提升技能,往往是自己摸索成长;不成体系的学习效果低效漫长,而且极易碰到自己的极限,从而导致技术停滞不前也因为在Android开发中有很多的知识点,所以我一直以来就想要一份Android知识点学习笔记来帮助自己查漏补缺,后来想想
- Android知识点
旭仔_2e16
1.混淆做了哪些事情?压缩:从应用及依赖库中删除没有使用的类、方法、字段,有助于规避64位方法数的限制优化:通过代码分析移除没有使用的代码,甚至重写代码混淆:使用没有意义的简短名称,重命名类、方法、字段,增加逆向难度。预校验:对于面向java6和java7jvm的class文件,编译时可以把预校验信息添加到类文件中,从而加快运行时类加载效率,但是对于Android平台无效。2.doublechec
- Android知识点 绘制流程
StephenLau
Android绘制流程问题:Android绘制流程是怎么样的?ActivityThread.handleLaunchActivity()中完成准备工作,Activity.attach创建PhoneWindowActivity.onCreate的setContentActivityThread.handleResumeActivity()中调用WindowManager.addView把DecorV
- Android知识点总结(一)
岁月静好浅笑安然
Android核心阐述下activity生命周期创建onCreate-启动onStart–开始onResume–暂停onPause–结束onStop–销毁onDestroy每一个活动(Activity)都处于某一个状态,对于开发者来说,是无法控制其应用程序处于某一个状态的,这些均由系统来完成。但是当一个活动的状态发生改变的时候,开发者可以通过调用onXX()的方法获取到相关的通知信息。在实现Act
- Android知识点-圆角
半寿翁
先扯两句不知道多长时间没有登录了,正好今天不太忙进来看一眼,然后看了好多文章,从我发的东西也能看出来,绝对不肯能是纯技术的,那看的种类那叫一个多啊。发现首页有几篇申请创作者没成功的帖子,再看看自己的创作者,不由老脸一红,还是写一篇对得起平台对我的认可。正文随着UI越来越美观,原本直来直去的布局样式越来越不受喜欢,圆角样式,这个最简单的优化方案在越来越多的场合下被应用到。而具体怎么样才能展示出圆角的
- android canvas_Android自定义控件:带你掌握一款多特效的智能loadingView
weixin_39843078
androidcanvasandroidstudio设置按钮圆角android上下滚动文字android自定义viewgroup设置子控件android自定义控件生命周期android自定义控件的宽高
先上效果图(如果感兴趣请看后面讲解):1、登录效果展示2、关注效果展示觉得文章不错的小伙伴欢迎关注专栏Android高级进阶,我会定期分享Android知识点及解析,还会不断更新的BATJ面试专题,欢迎大家前来探讨交流,如有好的文章也欢迎投稿。Android高级进阶zhuanlan.zhihu.com1、【画圆角矩形】画图首先是onDraw方法(我会把圆代码写上,一步一步剖析):首先在view中定
- Algorithm
香水浓
javaAlgorithm
冒泡排序
public static void sort(Integer[] param) {
for (int i = param.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
int current = param[j];
int next = param[j + 1];
- mongoDB 复杂查询表达式
开窍的石头
mongodb
1:count
Pg: db.user.find().count();
统计多少条数据
2:不等于$ne
Pg: db.user.find({_id:{$ne:3}},{name:1,sex:1,_id:0});
查询id不等于3的数据。
3:大于$gt $gte(大于等于)
&n
- Jboss Java heap space异常解决方法, jboss OutOfMemoryError : PermGen space
0624chenhong
jvmjboss
转自
http://blog.csdn.net/zou274/article/details/5552630
解决办法:
window->preferences->java->installed jres->edit jre
把default vm arguments 的参数设为-Xms64m -Xmx512m
----------------
- 文件上传 下载 解析 相对路径
不懂事的小屁孩
文件上传
有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着,网上各种百度着。
下面总结一下遇到的问题:
文件上传,在页面上传的时候,不要想着去操作绝对路径,浏览器会对客户端的信息进行保护,避免用户信息收到攻击。
在上传图片,或者文件时,使用form表单来操作。
前台通过form表单传输一个流到后台,而不是ajax传递参数到后台,代码如下:
<form action=&
- 怎么实现qq空间批量点赞
换个号韩国红果果
qq
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加
- 判断是否为中文
灵静志远
中文
方法一:
public class Zhidao {
public static void main(String args[]) {
String s = "sdf灭礌 kjl d{';\fdsjlk是";
int n=0;
for(int i=0; i<s.length(); i++) {
n = (int)s.charAt(i);
if((
- 一个电话面试后总结
a-john
面试
今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。
面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:
在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。
然后对list和map分别举几个类型:
list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了
- MSSQL中Escape转义的使用
aijuans
MSSQL
IF OBJECT_ID('tempdb..#ABC') is not null
drop table tempdb..#ABC
create table #ABC
(
PATHNAME NVARCHAR(50)
)
insert into #ABC
SELECT N'/ABCDEFGHI'
UNION ALL SELECT N'/ABCDGAFGASASSDFA'
UNION ALL
- 一个简单的存储过程
asialee
mysql存储过程构造数据批量插入
今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS inse
- annot convert from HomeFragment_1 to Fragment
百合不是茶
android导包错误
创建了几个类继承Fragment, 需要将创建的类存储在ArrayList<Fragment>中; 出现不能将new 出来的对象放到队列中,原因很简单;
创建类时引入包是:import android.app.Fragment;
创建队列和对象时使用的包是:import android.support.v4.ap
- Weblogic10两种修改端口的方法
bijian1013
weblogic端口号配置管理config.xml
一.进入控制台进行修改 1.进入控制台: http://127.0.0.1:7001/console 2.展开左边树菜单 域结构->环境->服务器-->点击AdminServer(管理) &
- mysql 操作指令
征客丶
mysql
一、连接mysql
进入 mysql 的安装目录;
$ bin/mysql -p [host IP 如果是登录本地的mysql 可以不写 -p 直接 -u] -u [userName] -p
输入密码,回车,接连;
二、权限操作[如果你很了解mysql数据库后,你可以直接去修改系统表,然后用 mysql> flush privileges; 指令让权限生效]
1、赋权
mys
- 【Hive一】Hive入门
bit1129
hive
Hive安装与配置
Hive的运行需要依赖于Hadoop,因此需要首先安装Hadoop2.5.2,并且Hive的启动前需要首先启动Hadoop。
Hive安装和配置的步骤
1. 从如下地址下载Hive0.14.0
http://mirror.bit.edu.cn/apache/hive/
2.解压hive,在系统变
- ajax 三种提交请求的方法
BlueSkator
Ajaxjqery
1、ajax 提交请求
$.ajax({
type:"post",
url : "${ctx}/front/Hotel/getAllHotelByAjax.do",
dataType : "json",
success : function(result) {
try {
for(v
- mongodb开发环境下的搭建入门
braveCS
运维
linux下安装mongodb
1)官网下载mongodb-linux-x86_64-rhel62-3.0.4.gz
2)linux 解压
gzip -d mongodb-linux-x86_64-rhel62-3.0.4.gz;
mv mongodb-linux-x86_64-rhel62-3.0.4 mongodb-linux-x86_64-rhel62-
- 编程之美-最短摘要的生成
bylijinnan
java数据结构算法编程之美
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class ShortestAbstract {
/**
* 编程之美 最短摘要的生成
* 扫描过程始终保持一个[pBegin,pEnd]的range,初始化确保[pBegin,pEnd]的ran
- json数据解析及typeof
chengxuyuancsdn
jstypeofjson解析
// json格式
var people='{"authors": [{"firstName": "AAA","lastName": "BBB"},'
+' {"firstName": "CCC&
- 流程系统设计的层次和目标
comsci
设计模式数据结构sql框架脚本
流程系统设计的层次和目标
 
- RMAN List和report 命令
daizj
oraclelistreportrman
LIST 命令
使用RMAN LIST 命令显示有关资料档案库中记录的备份集、代理副本和映像副本的
信息。使用此命令可列出:
• RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
• 可用的且可以用于还原操作的数据文件备份和副本
• 备份集和副本,其中包含指定数据文件列表或指定表空间的备份
• 包含指定名称或范围的所有归档日志备份的备份集和副本
• 由标记、完成时间、可
- 二叉树:红黑树
dieslrae
二叉树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题.
红黑树必须遵循红黑规则,规则如下
1、每个节点不是红就是黑。 2、根总是黑的 &
- C语言homework3,7个小题目的代码
dcj3sjt126com
c
1、打印100以内的所有奇数。
# include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
printf("%d ", i);
}
return 0;
}
2、从键盘上输入10个整数,
- 自定义按钮, 图片在上, 文字在下, 居中显示
dcj3sjt126com
自定义
#import <UIKit/UIKit.h>
@interface MyButton : UIButton
-(void)setFrame:(CGRect)frame ImageName:(NSString*)imageName Target:(id)target Action:(SEL)action Title:(NSString*)title Font:(CGFloa
- MySQL查询语句练习题,测试足够用了
flyvszhb
sqlmysql
http://blog.sina.com.cn/s/blog_767d65530101861c.html
1.创建student和score表
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR
- 转:MyBatis Generator 详解
happyqing
mybatis
MyBatis Generator 详解
http://blog.csdn.net/isea533/article/details/42102297
MyBatis Generator详解
http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.
- 让程序员少走弯路的14个忠告
jingjing0907
工作计划学习
无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是一名软件开发人员所学到的经验,希望能对大家有所帮助
1.不要害怕在工作中学习。
只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放
- nginx和NetScaler区别
流浪鱼
nginx
NetScaler是一个完整的包含操作系统和应用交付功能的产品,Nginx并不包含操作系统,在处理连接方面,需要依赖于操作系统,所以在并发连接数方面和防DoS攻击方面,Nginx不具备优势。
2.易用性方面差别也比较大。Nginx对管理员的水平要求比较高,参数比较多,不确定性给运营带来隐患。在NetScaler常见的配置如健康检查,HA等,在Nginx上的配置的实现相对复杂。
3.策略灵活度方
- 第11章 动画效果(下)
onestopweb
动画
index.html
<!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/
- FAQ - SAP BW BO roadmap
blueoxygen
BOBW
http://www.sdn.sap.com/irj/boc/business-objects-for-sap-faq
Besides, I care that how to integrate tightly.
By the way, for BW consultants, please just focus on Query Designer which i
- 关于java堆内存溢出的几种情况
tomcat_oracle
javajvmjdkthread
【情况一】:
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg> <jvm-arg>-Xmx
- Manifest.permission_group权限组
阿尔萨斯
Permission
结构
继承关系
public static final class Manifest.permission_group extends Object
java.lang.Object
android. Manifest.permission_group 常量
ACCOUNTS 直接通过统计管理器访问管理的统计
COST_MONEY可以用来让用户花钱但不需要通过与他们直接牵涉的权限
D