- 博客(291)
- 资源 (8)
- 问答 (3)
- 收藏
- 关注
原创 MVVM学习
优势MVVM的目标和思想MVP类似,利用数据绑定(Data Binding)、依赖属性(Dependency Property)、命令(Command)、路由事件(Routed Event)等新特性,打造了一个更加灵活高效的架构。数据驱动在MVVM中,以前开发模式中必须先处理业务数据,然后根据的数据变化,去获取UI的引用然后更新UI,通过也是通过UI来获取用户输入,而在MVVM中,数据和业...
2019-01-14 17:29:54 595
原创 Kotlin笔记
一、类class1、构造器Koltin 中的类可以有一个 主构造器,以及一个或多个次构造器,主构造器是类头部的一部分,位于类名称之后:class Person constructor(firstName: String) {}如果主构造器没有任何注解,也没有任何可见度修饰符,那么constructor关键字可以省略。class Person(firstName: String) {}2、getter 和 setter属性声明的完整语法:var <propertyName>[
2021-03-19 16:37:17 355
原创 uni-app混合原生安卓开发
uni-app和原生App混合开发问题首先务必确认uni-app和原生代码,谁是主谁是从的问题。1、如果你的应用是uni-app开发的,需要扩展一些原生能力,那么首先去插件市场看看有没有现成的插件,如果没有,就自己开发,开发文档请参考原生插件开发教程https://nativesupport.dcloud.net.cn/NativePlugin/course/android。2、如果你的App是原生开发的,部分功能栏目想通过uni-app实现,有2种方式:在原生App里集成uni小程序sdk,参考
2021-01-28 17:17:58 12309 1
原创 小程序运营
字节跳动小程序小程序审核通过 ,抖音小程序中能搜索此小程序,但是发布小视频时,挂载小程序不能搜索到该小程序进入小程序管理–>功能管理–>抖音能力–>前往管理–>特殊权限–>查询小程序挂载权限(申请通过就可以)...
2021-01-28 11:02:25 346
原创 安卓市场上架调研
大部分应用商店会要求著作权证书。应用商店酷安市场Google Play豌豆荚安智vivo 应用商店是否需要软著xx√x (推广费5000元)广告商优量汇优量汇
2021-01-27 11:31:59 789 1
原创 uni-app广告总结
uni-app广告分类两大类:基础广告和增强广告。基础广告基础广告直接在uni-app后台勾选即可,不需要做配置,直接能够使用。弊端:基础广告只能在App中使用,不能显示在小程序中。收益较低。广告形式:开屏PUSH通知栏增强广告增强广告开通较麻烦,大部分需要在主流应用市场上架才能开通,一般上架都需要软件著作权证书。弊端:开通较麻烦,大部分需要软件著作权证书需要代码植入广告形式:...
2021-01-27 10:49:36 6326 3
原创 uni-app采坑记录
1、微信小程序,如果请求服务器接口,在体验版之后,都必须在小程序开发后台配置https域名才能正常访问。这个域名可以是任何域名,只需要配置即可,多个域名之间用";"符号分割。设置→开发设置→服务器设置...
2021-01-21 16:55:53 376
原创 vue.js学习
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> <script src="js/vue.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="app"> {{
2021-01-04 15:13:36 167 1
原创 跨平台框架选择
目标:找到一个快速上手的,能支持android、ios、H5、微信小程序、支付宝小程序、钉钉的开发框架。框架androidiosH5微信小程序支付宝小程序钉钉跨平台兼容性上手难度React Native√√××××一般Flutter√√××××一般较高PhoneGap√√××××一般较低Taro√√√√√√较好较高uni-app√√√√√√好较低从快速开发,跨平台
2020-12-30 09:55:06 272
原创 HashMap与TreeMap
1、HashMap使用HashMap做个测试:Map<Character, Integer> map = new HashMap<Character, Integer>();map.put('s', 1);map.put('a', 3);map.put('j', 2);map.put('d', 9);map.put('f', 3);for (Character in : map.keySet()) { Integer str = map.get(in);//得
2020-12-24 11:31:28 347
原创 算法-动态规划
在LeetCode上有一道题:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/这个题的解决思路之一就是使用动态规划。那何为动态规划,知乎上这篇文章讲的比较透彻:https://www.zhihu.com/question/39948290/answer/883302989我总结了一下,什么样的问题适合用动态规划?问题的答案依赖于问题的规模,也就是问题的所有答案构成了一个数列
2020-12-17 15:27:40 223
原创 微信小程序(十)全局数据变化监听
有这样一个需求,在一个页面点击“增加”按钮,另一个页面的数据要跟着变化,这里就需要全局数据变化监听。在全局app.js文件中://app.jsApp({ // ... globalData: { orderNum:0, // 订单数量 }, //app 全局属性监听 watch: function (method) { var obj = this.globalData; Object.defineProperty(this, "globalData
2020-12-09 15:05:33 4661
原创 微信小程序(九)布局
1、display:block 指定为块内容器模式,总是使用新行开始显示,微信小程序的视图容器(view,scroll-view和swiper)默认都是dispaly:block。display:flex:指定为行内容器模式,在一行内显示子元素,可以使用flex-wrap属性指定其是否换行,flex-wrap有三个值:nowrap(不换行),wrap(换行),wrap-reverse(换行第一行在下面)使用display:block(默认值)的代码:<view class="flex-row"
2020-12-07 14:56:31 697
原创 android bmob集成
1、项目中添加引用在项目下的build.gradle下,增加一行:allprojects { repositories { // ....省略 maven {url 'https://dl.bintray.com/chaozhouzhang/maven' } }}在module的build.gradle下添加: implementation 'cn.bmob.android:bmob-sdk:3.7.8' implementation
2020-11-25 21:12:38 573
原创 androidstudio run按钮灰色不可运行
1、app的build.gradle的compileSdkVersion没有2、在model下拉框中选择app.如果下拉框中没有app,(没有工程名),那么请先去设置:Android Studio 3.3.0 File->sync project with gradles files;(老版本的AS可能是tools ->Android->sync project with gradles files;)...
2020-11-24 22:04:08 1544
原创 startActivityForResult()替代方案Activity Result Api
startActivityForResult()在使用过程中,还需要与onActivityResult()配对使用,定义大量的requestCode,属实比较麻烦,而现在startActivityForResult()方法已经被谷歌标记为了Deprecated,方法不推荐使用了,谷歌推荐使用Activity Results API。首先引入: implementation 'androidx.activity:activity:1.2.0-beta01' implementation 'a
2020-11-10 17:09:03 18447 1
原创 网络调试常用命令
1、ping命令最常用的应该就是ping命令,可以快速查看当前ip与目标ip是否网络畅通。这里ping命令后即可以是ip地址,也可以是域名。但是现在很多服务器(比如运营商核心网)都是禁ping 的,那就要下面操作了。2、tracert命令tracert命令可以追踪路由3、telnet命令如果禁ping和tracert,可以使用telnet命令。要使用telnet命令,先要开启telnet客户端。telnet不是内部或者外部命令也不是可运行的程序telnet ip port到上面这个
2020-11-02 14:51:40 46703
原创 从0实现RxJava
参考:https://mp.weixin.qq.com/s/hiCO5_0Rc5sXeis13CZrYA先做一个最简单RxJava:/** * 观察者 */public interface MyObserver<T> { void onSubscribe(); void onNext(T t); void onError(Throwable e); void onComplete();}//真正的被观察者public interface MyO
2020-10-23 17:00:48 228
原创 Android studio修改项目名称
有时候我们从旧有项目代码复制过来新建一个项目,修改项目根目录的文件名之后,发现AS中的项目名称并没有改变,下面总结一下完整的过程。1、修改项目根目录的文件名2、打开.idea/.name文件里面内容只有一个,就是项目名称,修改为新项目名称即可3、重命名旧项目名称.iml,改成新项目名称.iml然后打开这个.iml文件把这个project.id改成新项目名称即可。...
2020-09-25 10:35:19 2136
原创 MPAndroidChart总结
1、在使用环形图表的时候,我遇到一个问题,环上显示不出百分号(%)?查看设置代码:mChart.setUsePercentValues(true); //使用百分比显示这里正确设置了,然后发现下面代码有猫腻:pieData.setValueFormatter(new PercentFormatter());查看PercentFormatter源代码:public class PercentFormatter extends ValueFormatter{ public Deci
2020-09-24 16:32:47 645
原创 Dagger2学习
官方GitHub:https://github.com/google/dagger示例代码(参考:https://blog.csdn.net/wusejiege6/article/details/102644782)public class MainActivity extends AppCompatActivity implements MainContract.View { private MainPresenter mainPresenter; ... @Override
2020-08-17 16:44:13 189
原创 git常用命令
1、查看远程分支git remote2、查看当前远程仓库地址根据上面命令,查看远程分支origin的仓库地址git remote get-url origin3、修改远程仓库地址gitlab服务器迁移,需要改变git的远程仓库地址。git remote set-url origin http://10.78.58.79/huangy185/reader.git4、设置提交者的名称和邮箱D:\workspace\reader>git config --global user.
2020-08-12 11:49:34 242
原创 微信小程序(八)遇到的一些坑
程序的坑比较多,原因在于小程序开发文档相当的不全,所以开发小程序是比较痛苦的,但也正是因为坑多,技术却一步一步的往上升了…不知道该笑还是该哭。1、wx.uploadFile的坑返回的数据格式不是JSON格式(需要自己用JSON.parse()转化格式);...
2020-08-07 09:49:59 196
原创 SpringBoot从零搭建一个项目(五)定义返回格式
如果我们直接返回对象的json格式,对于客户端来说,使用体验不是很好,一般还要返回code和错误信息,所以这里我们做一次封装。先定义返回的格式如下:{ data: {} code: 100 msg:“正常”}封装返回的类:public class JsonResult { public static String CODE_SUCCESS = "100"; public static String CODE_FAIL = "101"; private Stri
2020-08-05 11:30:17 256
原创 SpringBoot从零搭建一个项目(四)用户系统架构
一、数据库设计二、Java架构整体架构如下:主要分为:持久层、业务层和控制层。1、数据集合省略get和set方法public class User { private Integer id; private String nickName; private String avatarUrl; private String openid; private String unionid; private String createDate;}2、持久层@Repositoryp
2020-08-05 11:13:29 401
原创 微信小程序(七)本地调试
官方文档中对于网络请求有详细介绍:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html在小程序/小游戏中使用网络相关的 API 时,需要注意下列问题,请开发者提前了解。服务器域名配置每个微信小程序需要事先设置通讯域名,小程序只可以跟指定的域名进行网络通信。包括普通 HTTPS 请求(wx.request)、上传文件(wx.uploadFile)、下载文件(wx.downloadFile) 和 We
2020-08-04 15:45:34 3283
原创 百度AI语音SDK集成
异常1、报错[ERROR]asr error:{“sub_error”:4004,“error”:4,“origin_result”:{“sub_error”:4004,“error”:4,“sn”:“cuid=B2C0D5D67F92F66D050236F30A233EA3|O&sn=728dbbf5-afd4-40b9-aa38-a9f0d6371941&nettype=4”,“desc”:“App name unknown[(-3004)4: Open api request lim
2020-07-31 10:51:51 2402
原创 自定义view中使用selector
需求如下:整体是一个自定义view,该view中有一个图片,点击后切换状态,图片跟着切换。很自然的想到selector中的state切换,定义一个selector文件如下:<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/voice_ing" android:state_selected="true"/> &
2020-07-30 16:22:22 780
原创 SpringBoot从零搭建一个项目(三)第一个程序
按照下图新建三个包,在controller包下面新建HelloServlet.java文件,@RestControllerpublic class HelloServlet { @RequestMapping("/hello") public String hello() { return "hello spring boot!"; }}@RestController可用下面两个注解代替:@Controller@ResponseBody@Controller注解,表明了这
2020-07-14 15:14:25 207
原创 SpringBoot从零搭建一个项目(二)架构
新建一个springBoot项目结构如下:重要的三个文件我用红色框起来了。1、Application文件名是项目名称+Application,所以这里是XiaopuApplication。@SpringBootApplicationpublic class XiaopuApplication { public static void main(String[] args) { SpringApplication.run(XiaopuApplication.class, args); }
2020-07-14 14:55:17 208
原创 SpringBoot从零搭建一个项目(一)准备工作
1、Eclipse安装插件Eclipse->help->Eclipse Marketplace->search搜索“STS”,选择Spring Tools 3(或者更高版本),点击install,等待下载安装。
2020-07-13 14:28:47 307
原创 微信小程序(六)表格布局
小程序中表格布局和android开发中的gridview控件布局不一样,小程序中不是定义一个表格控件,而是通过flex布局自动换行的方式来达到目的。首先在wxml布局文件中:···商品{{item}}0</block>···这里block 并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。其中在js文件中定义的数据:```Page({ /** * 页面的初始数据 */ data: { grids:
2020-07-12 22:51:30 2521
原创 微信小程序(五)首页架构
一般首页都采用tabBar的形式去展现,好在小程序帮我们实现了tabBar,很容易就可以实现。在app.json中增加:"tabBar": { "color": "#bfbfbf", "selectedColor": "#0aa4f5", "list": [ { "pagePath": "pages/shop/shop", "text": "小铺", "iconPath": "/image/shop.png", "selectedIco
2020-07-12 22:44:42 580
原创 微信小程序(四)屏幕适配
在WXSS中,引入了rpx(responsive pixel)尺寸单位。引用新尺寸单位的目的是,适配不同宽度的屏幕,开发起来更简单。如图所示,同一个元素,在不同宽度的屏幕下,如果使用px为尺寸单位,有可能造成页面留白过多。修改为rpx尺寸单位,效果如图所示。小程序编译后,rpx会做一次px换算。换算是以375个物理像素为基准,也就是在一个宽度为375物理像素的屏幕下,1rpx = 1px。举个例子:iPhone6屏幕宽度为375px,共750个物理像素,那么1rpx = 375 / 750 px
2020-07-03 17:01:23 2473
原创 微信小程序(三)微信开发者工具使用git
1、添加远程版本管理版本管理->设置->远程->添加把在远程建立的仓库地址添加进来。2、版本管理认证版本管理->设置->网络和认证->认证方式->使用用户名和密码填上用户名和密码即可。3、推送配置好之后就可以推送啦...
2020-07-03 16:40:01 5719
原创 微信小程序(二)原理
渲染层和逻辑层首先,我们来简单了解下小程序的运行环境。小程序的运行环境分成渲染层和逻辑层,其中 WXML 模板和 WXSS 样式工作在渲染层,JS 脚本工作在逻辑层。小程序的渲染层和逻辑层分别由2个线程管理:渲染层的界面使用了WebView 进行渲染;逻辑层采用JsCore线程运行JS脚本。一个小程序存在多个界面,所以渲染层存在多个WebView线程,这两个线程的通信会经由微信客户端(下文中也会采用Native来代指微信客户端)做中转,逻辑层发送网络请求也经由Native转发,小程序的通信模型下图所示。
2020-07-03 16:08:25 474
原创 微信小程序(一)建立新项目
其实按照微信的官方文档,很容易的就可以搭建起微信小程序的开发环境了。https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart在申请账号的时候遇到小问题,由于微信开放平台和微信公众平台是独立的,所以账号不能互通,且邮箱在一个平台注册之后(不管是否成功注册),不能在另外一个平台使用,所以这里需要再去找一个邮箱来注册。...
2020-07-02 17:15:06 307
原创 AndroidStudio与gradle版本异常
1、AndroidStudio版本太低AndroidStudio版本太低,与下载的gradle版本不兼容,报错如下:java.lang.AbstractMethodError: org.jetbrains.plugins.gradle.tooling.util.ModuleComponentIdentifierImpl.getModuleIdentifier()Lorg/gradle/api/artifacts/ModuleIdentifier; at org.gradle.api.internal.
2020-06-03 17:09:31 2579
原创 MMKV学习(三)Android使用
MMKVMMKV 原理MMKV for Android 多进程设计与实现MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能和稳定性经过了时间的验证。近期也已移植到 Android / macOS / Win32 / POSIX 平台,一并开源。Android 指南安装引入推荐使用 Maven:dependencies { implementation 'com.
2020-06-03 14:49:22 5824
android可暂停的录制视频(修复秒拍闪退)
2016-10-21
自定义输入框--输入法与表情面板切换
2016-09-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人