android
小白云书童
这个作者很懒,什么都没留下…
展开
-
mac下启动adb并安装apk
1.先打开你的终端2.在终端下输入以下命令echo $HOME(进入宿主目录(HOME))touch .bash_profile(创建 .bash_profile文件)open -e .bash_profile(打开.bash_profile文件) 3、打开该文件后 输入1.exportPATH=${PATH}:/Users/chenmowen/Library/Android/sdk/plat原创 2017-08-29 18:00:55 · 910 阅读 · 0 评论 -
Java多线程学习(三)Thread基本函数详解(sleep、yield、join、interrupt、守护线程、优先级)
sleep、yield、joinsleep:api:sleep(long millis) //参数为毫秒sleep(long millis,int nanoseconds) //第一参数为毫秒,第二个参数为纳秒注意点:sleep就是让线程睡眠,交出CPU,但是值得注意的是它不会释放锁优先级高优先级被优先执行的记录更大最低优先级 1:Thread.MIN_PRIORITY...原创 2019-03-05 09:56:44 · 745 阅读 · 0 评论 -
Java多线程学习(一)synchronized关键字
java 内置锁是互斥锁synchronized(悲观锁)非公平锁(效率高,优先级低的可能永远无法获取CPU的执行权,优先级高的可能重复执行)自动释放锁容易产生死锁JVM执行Lock(ReentrantLock(实现类))(乐观锁)公平锁:根据时间先后顺序来执行(根据顺序所以是有队列的,所以效率会低)忽略中断锁。响应中断锁手动释放锁java层的代码CAS(乐观锁)...原创 2019-03-01 14:47:03 · 217 阅读 · 0 评论 -
Java多线程学习(二)wait、notify、notifyAll详解
目录一、整体图表二、具体方法2.1 wait方法2.1.1定义2.1.2注意2.1.3使用方式2.2 notify方法2.2.1定义2.2.2注意2.2.2 使用方式2.3 notifyAll2.3.1定义2.3.2注意2.3.3 使用方式一、整体图表二、具体方法2.1 wait方法2.1.1定义让线程进入等待并且释放锁。2.1.2注意当前线程必须持有该对象的锁wait必须被唤...原创 2019-03-01 14:44:36 · 221 阅读 · 0 评论 -
Android 多渠道打包汇总(友盟、美团、360)
多渠道打包1 友盟多渠道打包补充知识Flavors:产品渠道,通过productFlavors针对不同的渠道进行配置flavorDimensions: flavors的作用是扩大维度,flavorDimensions则是将维度再次扩大。举个例子,flavors渠道有小米,但是小米有分收费和免费版。这时候可以通过flavorDimensions来扩大维度(具体的可以找下博客很多的)。B...原创 2019-02-13 11:01:55 · 1412 阅读 · 0 评论 -
Mac环境下反编译APK
目录一 通过Android studio的Analyze apk点击后选择你要反编译的apk,得到的就如下图所示目录classes.dex文件:android 的核心代码,你所写的代码都在这里头res : 资源文件。resources.arsc:记录资源文件和资源id的映射关系META-INF:保存apk签名信息,保证apk的完整性和安全性。AndroidManifest.x...原创 2019-02-12 16:01:25 · 385 阅读 · 0 评论 -
Handler跨线程源码分析
Handler如何实现跨线程handler 的构造函数 public Handler(Callback callback, boolean async) { //指定 Looper mLooper = Looper.myLooper(); if (mLooper == null) { throw new RuntimeEx...原创 2019-02-11 22:22:05 · 183 阅读 · 1 评论 -
Android开发之版本统一规范
需求组件化的时候有很多个module,不可能每个module里都要写上一份,那这样子很容易出现问题,所以就需要统一的版本管理实现创建 versions.gradle在根目录下创建 versions.gradle创建方法:在Project模式下点击右键—>New—>File—>输入名字(要以.gradle结尾)书写versions.gradle在里面写上你需要的库以...原创 2018-12-05 15:06:01 · 336 阅读 · 0 评论 -
Android实现通讯录功能,排序+字母索引(全拼加简拼)
一、效果图展示无图不BB,先上图二、功能与准备2.1 功能按照拼音顺序对好友进行排序,英文数字符号归为#右侧字母导航条,既可拖动也可点击粘性头布局搜索(全拼+简拼)2.2 准备需要导入文字转拼音的库com.belerweb:pinyin4j:2.5.1'三、开工3.1 右侧字母的索引字母的绘画 private static final String[] D...原创 2018-12-04 16:55:00 · 5799 阅读 · 7 评论 -
【Android】Realm代替SQLite详解
目录 一、简介二、环境配置先决条件:安装配置:三、使用3.1.初始化Realm3.2创建实体3.3 事务操作3.4 增3.5 查3.6 改3.7 删3.8 版本升级(数据迁移)3.9 加密四:问题主键(包括自增长)不是自增长自增长支持SQLIntent传递:五:配合使用rxjava多线程例子加密...原创 2018-10-24 18:46:40 · 2910 阅读 · 2 评论 -
Mac 系统更新后 用不了git (错误invalid active developer path)
错误更新了系统后,进入到git工程目录,输入git命令,提示无效路径错误xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools),missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun以及在And...原创 2018-10-25 09:55:42 · 772 阅读 · 1 评论 -
Android Studio:录制视频生成gif
1.录制视频1.首先打开Logcat会看到如下图所示2.点击视频录制按钮会看到如下图所示3.点击红框中的按钮就开始录制,分辨率在下方填写,不填写其中默认是720p的视频,最大三分钟。之后看到如下图所示4.录制完毕后点击红框中的按钮,选择存储路径,视频录制就结束了。2.生成gif图2.1 mac安装ffmpeg在终端执行命令 brew install ffmp...原创 2018-10-13 16:17:08 · 492 阅读 · 0 评论 -
Android:SQLite详解
目录1. SQLite数据库介绍2. 数据库的增删查改2.1创建数据库以及更新数据库2.2 插入数据2.3 修改数据库2.4 删除数据2.4.1 删除一条数据2.4.2 清空一张表2.4.3 删除一张表2.4.4 删除数据库2.5 查询数据3.数据库的事务4.Demo地址 1. SQLite数据库介绍SQLite是Android内置的...原创 2018-10-13 15:22:47 · 520 阅读 · 0 评论 -
Java 注解(Annotation) 的基本使用和理解
1.注解概念:相当于标签2.注解的类型2.1 元注解概念:元注解是可以注解到注解上的注解,或者说元注解是一种基本注解,但是它能够应用到其它的注解上面元注解的种类@Retention @Documented @Target @Inherited @Repeatable@Retention作用:解释/说明了注解的生命周期取值如下: RetentionPol...原创 2018-10-12 15:00:52 · 751 阅读 · 0 评论 -
Android自定义View构造函数、自定义属性详解
1.引言小菜鸟写博客,因为刚刚开始写,写的感觉很乱,如果你能看下去,表示感谢。身份小菜鸟,这篇文章看了鸿洋大神的博客,还有其他博客自己做的一个小总结。所以有什么错误请多多指正。2.初始自定义View的构造函数public MyView(Context context) { super(context); } public MyView(Context context,原创 2017-08-30 18:27:19 · 400 阅读 · 0 评论 -
Java多线程学习(四)ThreadGroup(线程组)
目录一、ThreadGroup概述二、ThreadGroup常用API三、API例子一、ThreadGroup概述每个线程隶属于唯一一个线程组,这个线程组在线程创建时指定并在线程的整个生命周期内都不能更改。默认线程创建时属于main线程组。默认创建的线程组也属于main线程组,所以线程组组成了一棵以系统线程组为根的树补充:main线程组属于system线程组,system线程组时根线程组二...原创 2019-03-05 09:58:22 · 292 阅读 · 0 评论