自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 Android 不常用Layout

1,CoordinatorLayout协调者布局,协调子布局之间的联动2,AppBarLayout 他的子控件不仅仅可以设置为Toolbar,也可以包含其他的View3,CollapsingToolbarLayout为我们提供了一个叫做Behavior的东西,我们基本上的复杂交互都是使用Behavior来协调完成 example: CoordinatorL...

2020-04-07 16:06:27 111

原创 android 主流框架与技术

框架1,Arouter2,Anko3,RxKotlin4,RxAndroid5,RxBus6,Dagger2,7,Glide技术1,MultiStateView 多状态视图2,Qiniu-android-sdk 七牛云存储3,TakePhoto图片处理4,CoveFlow 画廊视图5,TriangleLabelView标签试图6,Flo...

2020-02-18 20:56:12 339

原创 Android开发常用网站

1,JNI笔记 C访问Java构造方法,父类方法,中文乱码,C向Java中传入数组 https://blog.csdn.net/SImple_a/article/details/731626302,APK反编译工具之:ApkTool + dex2jar + jd-gui https://blog.csdn.net/coder_pig/article/details/...

2019-03-12 16:09:57 122

原创 2021-02-05

RxJava 基本1,创建:1.1,已有数据创建,just() ,from()// from 将数组或Iterable数据取出逐个发射Observable<String> o = Observable.from("a", "b", "c");def list = [5, 6, 7, 8]Observable<Integer> o = Observable.from(list);// just 将单个数据转换为发射的那个数据的Observable// 如果.

2021-02-05 17:24:32 103

原创 Android 微信支付流程以及注意事项。

一,集成: 1,微信开放平台进行账户的注册,商户平台的注册以及微信的支付授权。https://open.weixin.qq.com/ 2,在包名下新建wxapi文件夹,同时copy 开放平台的demo下的WXEntryActivity文件,记得在注册文件中注册。 <activity android:name="com.xxx.abc.wxapi.WXPayEntryActivity" android:exported="true" ...

2020-12-31 14:52:44 410 1

原创 kotlin list总结

kotlin集合过滤操作符过滤操作符:drop():从第一项开始去除前n个元素,并返回剩余的元素列表。 dropWhile{}:根据给定函数从第一项开始去掉指定元素,直到不满足条件为止的前面的元素,并返回剩余元素列表。 dropLastWhile{}:根据给定函数从最后一项开始去掉指定元素,直到不满足条件为止的后面的元素,并返回剩余元素的列表。 filter{}:过滤出所有符合给定函数条件的元素。 filterNot{}:过滤所有不符合给定函数条件的元素。 filterNotNull():

2020-12-22 11:23:56 2196

原创 Android 照片拍摄

1,权限<uses-feature android:name="android.hardware.camera" android:required="true"/> <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"

2020-06-22 14:00:28 167

原创 Android mvvm的基本使用

1,viewMode 是使用mvvm的中间层,而liveData是用于存储viewModel数据的一个强引用数据类型,有生命周期,并且即使切换屏幕也不用destroy, 一般而且结合使用,2,dataBinding 是把viewModel和ui结合的google推出的官方框架eg:build.gradledataBinding{ enabled = true }public class UserActivity extends Activity {

2020-06-11 10:05:53 542

原创 Android. CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout的小问题

1,CoordinatorLayout android:fitsSystemWindows="true"2,AppBarLayout android:background="#ffffff" // 设置头部的背景色,替换系统颜色 android:fitsSystemWindows="true" ...

2020-04-29 18:05:00 214

原创 SQL 中的视图,事务以及索引

1,视图:简单的理解就是一个虚拟表,作用是把一些复杂的关联的表进行整理成一个简单的关系,以后就可以根据视图进行查询操作,当表结构发生变化的时候,也可以只更新视图,而不需要更改内部的调用数据库的代码逻辑。所以数据库的视图作用很大。2,事务:一个操作的执行单元,数据库中主要是为了防止数据的稳定性(aicd)进行的安全性处理。可以理解成线程中的锁。...

2020-04-17 10:21:14 165

原创 Android. webview基本配置以及SSLerror错误过滤

@SuppressLint("SetJavaScriptEnabled") fun setWebSettings(context: Context?, mWebView: WebView) { val webSettings = mWebView.settings // webSettings.setTextSize(WebSettings....

2020-03-31 14:20:50 409

原创 openGl 编写流程

1,创建顶点数组2,自己写 顶点着色器 和片元着色器3,将java声明的顶点数组 颜色数组 通过类似于jni接口 传递给 gl语言的变量public class FGLView extends GLSurfaceView { public FGLView(Context context) { super(context); } // 三角形 ...

2019-11-13 17:41:21 195

转载 Mac下安装artifactory

1,确定你安装了JAVA SDK 82,下载artifactory 从https://www.jfrog.com/open-source/下载到最新的artifactory,将zip包解压一个目录,最好不含中文。3,Manual Installation手工安装 1)找到$ARTIFACTORY_HOME/bin/artifactory.default...

2019-11-09 09:38:31 584

原创 自定义View

主要包括:布局,绘制,触摸反馈1,布局,主要是View在父容器的位置以及自身的尺寸。布局中,所有layout开头的都是给父容器看的,子布局通过onMeasure 的measure方法获取自身所需要的尺寸,父容器获取子布局的期望值,在计算然后父容器通过layout方法把实际尺寸发给子布局onDraw和onMeasure是 总调度。draw和measure是实际代码的地方。...

2019-11-04 17:47:59 99

原创 Android 多线程

1,常用的Thread 和Running的方法 thread和running是完全一样的,threadFactory存在线程同步问题。public static void thread(){ Thread thread = new Thread(new Runnable() { @Override public v...

2019-10-28 16:45:14 138

原创 Retrofit 同时上传图片和文字,文字服务器多双引号的问题。

1,@Multipart@POST("")Observable<BaseResponse> doCertForSpecialGroup(@Part MultipartBody.Part imageFile1, @Part MultipartBody.Part imageFile2,...

2019-10-17 14:58:02 276

原创 Android 开发中高效的数据结构

1,SimpleArrayMap 替代ArrayMap2,SparseArray<T>,SparseArrayCompat<T>和LongSparseArray<T> 替代 HashMap3,AtomicFile 并不会替代File AtomicFile是Android API17中引入的对文件进行原子操作的帮助类,所谓原子性,是指在对整个...

2019-09-16 16:01:47 110

原创 kotlin不同模块相互调用

1,library的 depenencies 不能用implementation因为implementation无法继承,所以要使用api这个,是可以继承的。2,如果相互调用报错:unresolved reference 。那是因为library需要 apply plugin: 'kotlin-andoid '...

2019-08-31 13:58:42 1268

原创 kotlin 中分模块开发的配置

A,设置是library还是application(假如模块是UserCenter) 1,gradle.properties 添加 isUserModule = false (true 表示是library false 表示是application可单独运行) 2,build.gradle 添加 if (isUserModule.toBo...

2019-08-28 15:06:33 185

原创 dialogFragment设置背景 为透明

添加如下代码到onCreateView()中if (getDialog() != null && getDialog().getWindow() != null) { // 设置背景透明 getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));}...

2019-08-23 17:31:07 722

原创 android 8.0,9.0的注意事项。

Android 8.0跳坑之'Only fullscreen opaque activities can request orientation'先确认自己是不是用的Android8.0版本在AndroidManifast文件中找到相关的Activity类的注册,如果有android:screenOrientation='portrait'啥的麻烦删掉 (已验证)在style文件中找&...

2019-08-13 16:01:01 137

原创 Android-TabLayout设置内容宽度以及下划线宽度

1.设置TabLayout中各个条目之间的间距,利用app:tabPaddingEnd="10dp"和app:tabPaddingStart="10dp"即可实现,但是,在实际显示中,并没有起作用,所以需要设置额外的属性app:tabGravity="fill",app:tabMinWidth="30dp"2、设置字体大小,需要在style中自定义tabTextAppearance属性Ta...

2019-08-08 14:34:34 1049

原创 Kotlin小知识点之非空判断

1,关于可以为空的判断 length_null = strB?.length ?.表示对象为空时就直接返回null,如果对象不为空,则返回strB.length。所以返回值的变量必须被声明为可空类型 length = strB?.length?: -1 ?:表示为空时就返回右边的值,即(x!=null)? x.**: y ength ...

2019-07-30 16:37:08 4879

原创 Android 监听软键盘弹起和收起事件

预备知识】在manifest文件中可以设置Activity的android:windowSoftInputMode属性,这个属性值常见的设置如下:android:windowSoftInputMode="stateAlwaysHidden|adjustPan"那么这里值的含义列表如下:【1】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于...

2019-06-13 14:13:05 2923

原创 Android事件传递

1,事件传递机制------源码2,处理事件的冲突事件:Activity,View,ViewGroup,Key,一,View的事件分发结论: 1, 控件的Listener事件触发顺序是先onTouch,再onClick 2,控件的onTouch返回true,将会onClick事件没有了----组织了事件的传递, 返回false,才会...

2019-05-15 14:53:58 83

转载 各大互联网公司技术分享

转自文章:https://mp.weixin.qq.com/s/WMsLuc7sktL952I-29EPyg各大公司对外开放的分享1.腾讯githubhttps://github.com/tencent技术公众号 腾讯 Bugly 腾讯音乐技术团队 QQ 空间开发团队(很久未更新) QQ 音乐前端团队(FE) 腾讯全端 All...

2019-05-15 10:37:27 3507

原创 Handler核心机制

Android 应用程序入口是ActivityThread 类入队Handler.sendMessage->queue.enqueueMessageLooper.loop(出队)轮询器出队Looper.loop->queue.nextHandler1)MessageQueue mQueue2)Looper mLooper(保存在ThreadLocal中)...

2019-04-23 16:52:43 136

原创 热门标签根据内容自动换行

在外层直接使用TagLayout布局即可。public class TagLayout extends ViewGroup { // 记录每一行有多高 List<Integer> lineHeights = new ArrayList<>(); List<List<View>> views = new ArrayList...

2019-04-23 09:32:15 127

原创 简单的生产者,消费者

我们经常使用的handler message队列就是一个生产者消费者 模式,// 产品static class ProductObject { // volatile 线程操作变量可见 public volatile static String value;}public static void main(String[] args) { Object loc...

2019-04-22 11:04:55 144

原创 IntentService

IntentService(本质:Service+HandlerThread+Intent)需要采用startService来启动,onbind()启动不了。至少要有一个空的构造方法优点:1,提高子线程的优先级2,减轻主线程的压力IntentService内部会创建一个HandlerThread,onHandlerIntent的执行在HandlerThread线程中执行-...

2019-04-18 14:59:35 89

原创 HandlerThread(Thread)

优点:1,减轻主线程的压力,提高UI的流程度2,可以处理多个任务,开启一个线程起到多个线程的作用(looper共享)

2019-04-18 10:34:55 128

原创 Android性能优化之内存泄漏

性能优化:1,如何去优化自己现有的项目,运行更加流畅。app进程 16M,32M,64M2,以后开发项目的时候就要从一开始就要做好。-----------------------------内存泄漏----------------------------------------C/C++自己去分配内存和释放内存----手动管理malloc free什么是内存泄漏,内存不...

2019-04-15 17:10:52 104

原创 C++之类,结构体,三元表达式,引用,指针

/*#define PI 3.14class MyCircle{ // 属性(权限访问修饰符)private: double r; double s;public: void setR(double r){ this->r = r; }; // 获取面积 double getS(){...

2019-03-26 10:59:41 235

原创 C++之命名空间

#include <iostream>// 标准命名空间(包含了很多标准的定义)// standardusing namespace std;// 命名空间类似于Java中的包(归类)// 自定义命名空间namespace NSP_A { int a = 9; struct Teacher{ char name[20];...

2019-03-26 10:05:38 131

原创 JNI之文件的拆分和合并

1,接口,public class NDKFileUtils { // 拆分 public native static void diff(String path,String path_pattern,int count); // 合并 public native static void patch(String path_pattern,int coun...

2019-03-19 15:39:35 167

原创 JNI之初始化全局变量(全局缓存)

1,接口,// 初始化全局变量public native static void initIds();2,动态加载库进行初始化。static { System.loadLibrary("native-lib"); initIds();}3,头文件JNIEXPORT void JNICALL Java_com_shaoshuaima_test_JniFo...

2019-03-15 10:38:39 2432

原创 JNI之缓存策略(局部缓存)

// 缓存策略// 这里的static是局部静态变量,key_id对象在缓存中缓存一次。extern "C"JNIEXPORT void JNICALLJava_com_shaoshuaima_test_JniForC_cached(JNIEnv * env, jobject jobj){ jclass cls = env-&gt;GetObjectClass(jobj); ...

2019-03-14 17:20:17 261

原创 JNI之C中的异常处理和抛出

1,接口// 异常处理public native void exception();2,头文件JNIEXPORT void JNICALL Java_com_XXX_XXX_XXX_exception(JNIEnv *, jobject);3,C++文件// 异常处理。// 1,保证Java代码可以运行// 2,补救措施保证C代码继续运行// JNI 自己抛出的异常...

2019-03-14 15:41:49 664

原创 JNI中局部引用,全局引用,弱引用

// JNI引用变量// 引用类型主要是 局部引用和全局引用// 作用:在JNI中告知虚拟机何时回收一个JNI变量// 局部引用,通过DeleteLocalRef手动释放对象// 1,访问一个很大的java对象,使用完之后,还要进行复杂的耗时操作,// 2,创建了大量的局部引用,占用了太多的内存,而且局部引用跟后面的操作没有关联性。// 模拟:循环创建数据extern "C"J...

2019-03-14 11:42:33 345

原创 JNI之把数组从C返回到Java

1,接口// 数组接收public native int[] getArray(int len);2,头文件JNIEXPORT jintArray JNICALL Java_com_XXX_XXX_XXX_getArray(JNIEnv *, jobject,jint);3,C++文件// 接收数组extern "C"JNIEXPORT jintArray JNIC...

2019-03-13 17:05:03 423

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除