- 博客(97)
- 资源 (4)
- 问答 (3)
- 收藏
- 关注
原创 动态规划之背包问题
发现上面三种情况,其实都是第3中情况的子集。当k=1,就变成了01背包问题,当k=无穷大,就变成了完全背包问题,所以解题思路和代码其实都可以是一样的,如果性能要求没有那么极致的话。
2023-12-05 19:39:05
519
原创 Retrofit怎么返回一个JSON字符串?
模仿 FastJsonResponseBodyConverter 自定义一个 Converter,直接返回字符串,不转实体对象,即可,收工。// 自定义Converter// 挖坑:理论上可以定义一个注解,然后判断 annotations 中是否包含此注解,// 如果包含,则返回自定义Converter,否则返回原来的Converter。})// 接口定义// 使用: ""
2023-11-27 02:15:43
1023
原创 Kotlin中 for in 是有序的吗?forEach呢?
我们要遍历一个数组、一个列表,经常会用到kotlin的 for in 语法,但是 for in 是不是有序的呢?forEach是不是有序的呢?这就需要看一下它们的本质了。
2023-11-23 22:06:01
965
原创 再次封装权限动态申请工具类
一、写在前面关于Android6.0的动态权限申请的博客已经多到没办法再多了,我为什么要再次封装呢?因为那些博客给的都是一些零零散散的代码,或者一个完整的库,不容易修改。我这里会把工具类用kotlin写成一个文件,只要复制粘贴过去你项目就能用了,不行的话再做小修改就行。二、使用方法先上使用方法,后面再贴代码,和解释。已Camera为例,先在Manifest里面声明。<uses-pe...
2019-12-05 12:14:11
957
原创 夜夜使用的setContentView()里面到底做了什么?
一、写在前面我们都知道继承Activity的onCreate()方法然后setContentView(R.layout.xxx)可以设置我们自己的布局文件,但是布局文件生成的View到底添加到哪里去了呢?首先在Activity这个类中我们可以看到有个mWindow变量,这个变量是在attach()方法里面创建的:mWindow = new PhoneWindow(...),然后在我们setCon...
2019-11-17 04:37:49
462
原创 从源码看Activity的生命周期
一、写在前面前面写了《从源码看Application的启动流程》,接下来该看看Activity的生命周期了。ActivityManagerService在attachApplicationLocked()方法里面调用thread.bindApplication()启动Application之后,会继续往下走,继续启动Activity。二、大致流程三、详细流程四、源码分析(基于API28)...
2019-11-14 11:57:12
378
原创 从源码看Application的启动流程
开篇废话开篇废话就真的是废话,强烈建议直接跳过。一直看重用户体验的我,很想做好一款超级好用的产品,但我只是一个默默开发的开发,一切都要跟产品大佬的奇葩需求走(这里也体谅一下产品吧,产品也是跟用户走的,还要考虑收益等等问题)。好多好多年前就开始用优快云了,可能是早期用户的原因吧,博客质量不怎么样,但是总排名在前万名,可以看到数字,1w+就不显示数字了。一开始的优快云是很丑的,没有支持Mark...
2019-11-04 01:26:52
261
原创 安卓屏幕适配必须了解的px ppi dpi density dip dp
概念px 英文叫pixel,就是像素的意思。比如我的一加七分辨率是1080*2340,就是宽度有1080个像素点。ppi 英文叫 pixels pe inch,就是每英寸有多少个像素。比如一加七手机默认是420像素/英寸。根据定义可以知道,同一个屏幕,同一个分辨率,这个值是固定的。dpi 英文叫 dots per inch,就是每英寸有多少个点,这个应该是历史遗留的说法,以前的打...
2019-10-31 23:01:45
653
原创 WIFI的相关操作
首先要获取 WifiManager,后面的所有操作基本上都要用到。val wifiManager = getSystemService(Context.WIFI_SERVICE) as WifiManager打开关闭WIFI打开或者关闭WIFI直接调用 WifiManager.isWifiEnabled = true / false 就可以了,但是要监听操作结果的话,有两种方法,一个是监听...
2019-10-31 23:00:14
1150
原创 协程(Coroutine-轻量级线程)的使用
一般我们需要异步操作的时候,都是通过多线程来实现的,但是线程的创建和开启是个耗性能的操作,开少量的线程没有问题,可是线程多了就有问题了,而且线程还会有各种数据同步的问题。协程作为一个轻量级的线程,可以完美解决这些问题。你试下开100万个线程?不死机我吃电脑。但是你开100万个协程,那是分分钟的事。这里只说android和kotlin中的使用。添加依赖// kotlin 版本ext.k...
2019-10-31 22:58:41
727
原创 手写简单脚本让windows直接使用ls命令
刚看了《哪吒》回来,印象中是哪吒杀了龙王三太子,这里却成了敖丙救了哪吒,也不必深究谁改了谁啦,剧情合理好看就行,十分好评。给完好评习惯性随手看看简书,看到一篇《像MAC一样使用win10的Terminal》,先不管它里面说的东西好不好用,首先要让它跑起来就十一分麻烦了,我是追求极简之人,实在看不下去,就自己想个超简单的方法,而且极度灵活,只要你懂bat脚本,将无所不能。第一步:写脚本新...
2019-10-31 22:56:38
603
原创 超级简单的Android源码下载
方法一:根据官网教程下载官网文档:https://source.android.com/source/downloading下载方法文档已经写的很清楚了,源码会分为超级多个git库,所以谷歌搞了个叫 repo 的工具(windows可以试下用这个https://github.com/esrlabs/git-repo),可以集中下载管理,超级简单,但国外的东西通常都会有乱七八糟的问题出现,可以自...
2019-10-31 22:43:54
1569
2
原创 安卓Touch事件的分发流程
想要进一步提升开发水平,事件分发机制是绕不开的。 网上也又各种博客分析源码,我也是看得一半一半懂,其实都是Java源码,慢慢看多几遍还是能看懂的,没有这个自信就不是程序员了。 这篇博客不写源码,不写分析,仅仅是总结出Touch事件的分发流程。需要知道的东西
2017-11-09 14:54:16
446
原创 发布aar(包含源码)到Github上供别人依赖引用
这篇博客就是记录一下怎么把自己写的框架打包成aar,并发布到Github的仓库上,全世界人民都可以通过gradle简单的一句compile就可以使用了。
2017-11-07 15:02:58
3059
3
原创 HandlerThread的简单使用
这里只是写了个HandlerThread的简单栗子,什么也不多说。 以后有时间再说一下原理什么的。package com.audienl.test;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import
2017-04-04 17:48:31
749
原创 一道小时候想不明白的数学题的分析
以前看到这样一个题目, 看起来是自相矛盾的,没怎么去研究。 今天不小心又看到了,就研究计算了一下。 题目如下面的动态图片:第一眼看上去是不是有点神奇? 我先自己用flash实践了一下,如下图: 有木有发现? 中间其实是有空隙的,并没有完全闭合。 其实我们来算一下就知道了,根本就不可能闭合。如图可得: x5=38\frac{x}{5}=\frac{3}{8} 得到:x=158x=\f
2016-09-25 00:34:03
898
1
原创 python保存一些用户配置-put_property-get_property
如果你用python来写PC桌面程序的话,不用你用wxpython,还是什么其它东西,都会经常需要保存一些配置,以便下次打开使用。比如用户名,不可能每次都让用户输入吧。但是一个小的程序又没必要用数据库,用文件保存又比较麻烦,肿么办呢 搜索了一下,发现 h5py 挺好的,很强大,那么使用起来就必须有点麻烦了,所有这里封装一下,只提供两个方法使用,方便小项目快速直接使用。安装HDF5 for
2016-09-09 16:26:20
1663
原创 Sources for Android API 23 Platfrom not found (Android Studio 2.0)
解决方法1: File -> Settings -> Appearance & Behavior -> System Settings -> Android SDK. 点击右边的Edit,然后下一步下一步下一步,,,收工。 参考连接:StackOverFlow - Sources for Android API 23 Platfrom not found (Android Studio 2.0)
2016-07-27 12:05:27
5698
原创 RecyclerView 的使用
一直使用ListView,也没觉得有什么问题,可能还是自己太菜了。 官方突然出了个RecyclerView,据说是专门替代ListView的,也没觉得好用多少,还是因为自己太菜了。 不管怎么说,要紧跟时代的潮流,尽管不喜欢,也要去学习,说不定学着学着就爱上了呢~废话不多说,坚持自己一贯的风格,尽量把代码写的最简单。一上效果图,二上代码,注释都在代码中。 效果图是个美女...
2016-04-22 16:50:07
985
转载 Android通过Intent.ACTION_CLOSE_SYSTEM_DIALOGS监听Home按键事件
原文链接:http://www.itnose.net/detail/6115323.html 这个参考了太多,算转载吧,我也不知道怎么样才算原创。比如有些博客参考了别人博客的部分代码,然后另外大部分是自己写的,那算不算原创,,,也罢,目的也只是记录一下,同时调整一下布局,弄的好看点,以便以后参考。安卓手机中底下都会有三个安卓(魅族奇葩),菜单,返回,HOME键。 返回键用的最多,有独立的方
2016-01-25 16:14:55
12814
原创 安卓中MVP模式和RxAndroid的具体实现例子
在MVC框架中,View是可以直接读取Model模型中的数据的,Model模型数据发生改变是会通知View数据显示发生相应的改变。 而在MVP中Model和View之间的没有任何联系,是两个完全独立的模块,当Model模型发生数据改变时,通过Presenter通知View视图发生相应的UI改变。
2015-10-24 11:27:23
15953
2
转载 eclipse报jvm terminated.exitcode=2异常解决办法
eclipse报jvm terminated.exitcode=2异常解决办法 转载自:http://www.educity.cn/wenda/467202.html原理其实很简单,是由于我安转了oracle,而oracle又自带了jdk,版本好像是1.1的,冲突了。 具体可以查看path值。 解决方法:删掉oracle的,或者是将oralce的path配置项移到java的配置项后面,建议
2015-10-22 09:26:06
3563
2
原创 ImageUtils-图片工具类
ImageUtils-图片工具类 一个日常项目中经常要用到的工具类,直接复制到项目中使用。注:更新于2015-08-10
2015-08-10 11:17:46
3776
原创 禁止滑动的ViewPager
禁止滑动的ViewPager ViewPager非常好用,但有时候需要在ViewPager的里面再嵌入ViewPager,那么就有冲突了,简单粗暴的方法就是直接把一个ViewPager禁止滑动。
2015-07-31 12:18:17
22570
2
原创 AIDL的简单使用
1 AIDL(Android Interface Definition Language):接口定义语言。 2 当需要在不同的进程之间传递对象时,比如在不同的应用之间传递对象的时候,就需要使用AIDL。 3 AID使得一个应用能够调用另一个应用的服务。
2015-06-13 23:23:26
1258
1
原创 调用系统分享功能
//分享文字Intent intent = new Intent(Intent.ACTION_SEND);intent.putExtra(Intent.EXTRA_TEXT, "要分享的文本。");intent.setType("text/plain");startActivity(Intent.createChooser(intent, "分享"));//分享图片Uri uri =
2015-03-11 10:16:56
2005
原创 HorizontalScrollView实现多页左右滑动
先上图看看效果:上代码:PageView是封装后的一个类,继承了HorizontalScrollView。package com.example.testandrid;import android.content.Context;import android.util.AttributeSet;import android.util.DisplayMetrics;im
2015-01-04 14:57:12
8127
原创 android中9-patch图片的使用
看了很多文章的介绍,9.png图片有两种区域:可扩展区和内容显示区。弄了半天才明白什么叫做可扩展区,什么叫做内容显示区。分享一下自己的理解。下图是某博客的截图:图片来自:http://blog.youkuaiyun.com/greatstar/article/details/5936177一个9.png图片的上下左右有4跟黑线,或者黑点。通俗的理解就是:上方的线:横向拉伸的区域
2014-11-12 16:27:36
2117
原创 SpringMVC+Spring+Hibernate的小例子
Strusts2+Spring+Hibernate虽然是主流的WEB开发框架,但是SpringMVC有越来越多的人使用了,确实也非常好用,用得爽!这里实现了一个SpringMVC+Spring+Hibernate的小例子。注释都在代码里面。项目各包的结构如下图:1, 首先是pom.xml<project xmlns="http://maven.apache.org/
2014-10-29 10:51:40
23141
7
原创 SurfaceView的经典写法
package com.example.test;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.view.MotionEvent;import android
2014-08-20 10:44:52
2078
原创 检测用户是否是第一次打开应用
很多时候我们需要检测用户是不是第一次打开应用,从而初始化一些数据,或者打开引导界面等等。/*方法一: * 在首次打开的时候检查是否存在文件(com.example.test.isFirstIn) * 如果已存在,证明不是第一次打开 * 不存在,证明是第一次打开;打开之后创建文件 * */File dir = getFilesDir();// /data/data/com.
2014-08-01 15:46:50
3042
原创 ajaxFileUpload 异步上传文件简单使用
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>Insert title here$(function(){ //点击打开文件选择器 $("#upload").on('click', function() { $('#fileTo
2014-07-18 17:36:26
111163
2
原创 mybatis 的简单使用
需要用到的包:(这里只是其中一个版本,其他的百度)mysql-connector-java-5.1.6-binmybatis-3.2.2先看项目目录:配置文件mybatisconfig.xml:<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybati
2014-07-16 13:26:09
2785
左右滑动动画切换屏幕-demo(看效果)
2014-03-31
表单验证- jQuery+Validation
2013-11-28
加上自定义Application之后报错(ClassNotFoundException)
2018-01-06
各路大神帮我看一下,Android自定义View的问题
2016-07-15
传 用于判断的参数,用什么类型比较好?
2014-03-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人