Android
Android
jiaxingcode
这个作者很懒,什么都没留下…
展开
-
netty @Sharable 注解详解
总结一下,它其实就是为了共享的方面,然后为了提升一点性能。其用法很简单,两个情况:1 如果每次通过new 而不是共享的方式,那么加不加@Sharable 效果都是一样的。每个Channel使用不通的ChannelHandler 对象。如:ch.pipeline().addLast(new EchoServerHandler());原创 2024-05-24 17:54:53 · 969 阅读 · 0 评论 -
外部类,静态内部类详解
外部类 普通方法 外部类的普通属性+静态属性; 静态内部类的静态属性外部类 静态方法 外部类的静态属性 静态内部类的静态属性静态内部类 普通方法 静态内部类的普通属性+静态属性 外部类的静态属性静态内部类 静态方法 静态内部类的静态属性...原创 2021-10-28 10:34:01 · 259 阅读 · 0 评论 -
Android操作assets中的资源
【代码】Android操作assets中的资源。原创 2023-03-06 18:03:02 · 366 阅读 · 0 评论 -
git忽略某个文件(.gitignore 和.git/info/exclude 的区别)
能够在团队成员中共享,因此当某个文件被公认为“无需版本控制”,那么最好就把它放在。文件则是供个人专用的,仅当自己觉得这个文件不用版本控制时,才把它放在。都能实现相同的功能,能够让Git忽略它们标记的文件。原创 2023-03-03 09:17:10 · 443 阅读 · 0 评论 -
ANR问题
data/system/dropbox:会保留历史上发生的所有ANR时的信息,保存时长3天。原创 2022-12-14 16:38:54 · 24 阅读 · 0 评论 -
查看真机下的报错信息,日志
仅仅查看log的信息还不足以帮我们定位到ANR的原因,所以需要去看data/anr/trace文件或者data/system/dropbox/下的log日志。原创 2022-10-13 13:58:31 · 140 阅读 · 0 评论 -
BroadCast Receiver
1.有序广播:接收者按照一定的优先级进行消息的接收。如:A,B,C的优先级依次降低,那么消息先传递给A,在传递给B,最后传递给C。优先级别声明在中,取值为[-1000,1000]数值越大优先级别越高。优先级也可通过filter.setPriority(10)方式设置。另外Ordered broadcasts的接收者可以通过abortBroadcast()的方式取消广播的传播,也可以通过setRes...原创 2017-06-07 12:14:55 · 177 阅读 · 0 评论 -
Activity
1.Intent:四大组件间通信 Handle:线程间通信(Handle要引入android.os.Handle包)2.如果我们的activity类不继承Activity基类,则就要通过LayoutInflater来加载界面;而如果activity类继承了Activity类,这时既可以用setContentView()来显示界面,也可以用Inflater加载界面,findViewById只是得到一...原创 2017-06-07 12:06:25 · 209 阅读 · 0 评论 -
RadioButton
1.先设置android:button="@null" 可以去掉单选按钮的圆点,然后设置android:drawableRight或者是android:drawableleft加载Drawable里的xml文件,xml文件里通过selector(背景选择器)定义单选按钮在不同状态下加载不同图片,可以实现单选按钮的定制。原创 2017-06-07 12:15:47 · 179 阅读 · 0 评论 -
BaseAdapter
1. public View getView(int position, View convertView, ViewGroup parent)//返回指定下标所对应的item的View对象position : 下标convertView : 可复用的缓存Item视图对象, 前n+1个为nullparent : ListView对象2.baseAdapter.notifyDataSetChange...原创 2017-06-07 12:11:03 · 195 阅读 · 0 评论 -
AutoCompleteTextView
1.android:completionThreshold默认等于2(输入2个字符开始提示)原创 2017-06-07 12:13:00 · 186 阅读 · 0 评论 -
ViewPager
1.viewpager里面是fragment的话,viewpager实现的adapter要继承fragmentPagerAdapter原创 2017-06-08 16:48:42 · 169 阅读 · 0 评论 -
ArrayAdapter
1. String str[]={"aa","bbb"};ArrayAdapter arratAdapter= new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,str):第二个参数是系统内部的固定写法。原创 2017-06-07 12:12:34 · 212 阅读 · 0 评论 -
ListView
1.ListView:要使监听事件共存需要设置android:descendantFocusability="blocksDescendants"在布局文件里设置(不是ListView文件),可以使单个item可以被选中。2. scrollview 嵌套listview重写listview时要设置setParentScrollAble(false);// 当手指触到listview的时候,让父Sc...原创 2017-06-07 12:12:08 · 171 阅读 · 0 评论 -
selector
1.背景选择器,可以让按钮等控件在不同状态下加载不同背景图片。shape可以改变控件形状颜色等。selector里嵌套item标签,item标签里面嵌套shape标签可以让按钮按钮再按下或抬起时切换形状颜色等原创 2017-06-08 16:46:22 · 167 阅读 · 0 评论 -
EditText初次打开页面不弹出软键盘,点击之后才弹出软键盘
1.android:windowSoftInputMode="adjustUnspecified|stateHidden" 设置edittext不弹出软键盘原创 2017-06-07 12:14:06 · 146 阅读 · 0 评论 -
Fragment
原创 2017-06-08 16:47:59 · 138 阅读 · 0 评论 -
ScrollView
1.可以滚动线性布局,默认只有一个子元素原创 2017-06-08 16:46:55 · 131 阅读 · 0 评论 -
TextView
1.textview改变不同字体颜色 :textView = (TextView) findViewById(R.id.textview);SpannableStringBuilder builder = new SpannableStringBuilder(textView.getText().toString());//ForegroundColorSpan原创 2017-06-07 12:13:28 · 299 阅读 · 0 评论 -
CardView
CardView要作为跟布局使用,否则阴影效果会闪烁<?xml version="1.0" encoding="utf-8"?><android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schema...原创 2018-10-12 08:46:22 · 374 阅读 · 0 评论 -
Android基础知识
第一章:1.代码规范快捷键(要关闭输入法才能有效):ctrl+shift+f。2.大写:项目名,类名。 小写:包名 大写和小写:变量名(第一 个首字母小写其余首字母大 写)3.\n:换行 \t:光标固定到下一个制表位4.编写源代码,编译器编译成 .class文件,java虚拟机运行5.项目重命名(alt+shift+r)6.文本域注释:/** 多原创 2017-06-08 16:49:44 · 201 阅读 · 0 评论 -
Android危险权限
android.permission.READ_CALENDAR允许程序读取用户日历数据android.permission.WRITE_CALENDAR允许一个程序写入但不读取用户日历数据android.permission.CAMERA,允许访问摄像头进行拍照android.permission.READ_CONTACTS允许程序读取用户联系人数据android.permission.WRITE_CONTACTS允许程序写入但不读取用户联系人数据android.permission.原创 2022-02-11 09:54:56 · 2278 阅读 · 0 评论 -
Android混淆笔记
不混淆某个类 -keep public class name.huihui.example.Test { *; }不混淆某个包所有的类 -keep class name.huihui.test.** { *; }不混淆某个类的子类 -keep public class * extends name.huihui.example.Test { *; }不混淆所有类名中包含了“model”的类及其成员 -keep public class .model. {*;}不混淆某个接口的实现 -keep class *原创 2022-06-28 10:44:13 · 621 阅读 · 0 评论 -
Lifecycle,LiveData,ViewModel区别
Lifecycle ,LiveData,ViewModel原创 2022-06-21 17:00:59 · 210 阅读 · 0 评论 -
git命令
git fetch : 从远程获取最新版本到本地,不会git mergegit pull : git fetch+git mergeupdate project : git fetch +git merge或者git rebase(android studio 界面自己选择)原创 2022-05-20 15:46:04 · 96 阅读 · 0 评论 -
不用第三方工具给apk签名
1.给apk签名:java -jar apksigner.jar sign --ks 签名文件 --ks-key-alias 签名文件的alias --ks-pass pass:密码 --key-pass pass:密码 --out 签名后的APK 签名前的APK"例如:D:\sdk\build-tools\28.0.3\lib>java -jar apksigner.jar sign --ks D:/qdkey.jks --ks-key-alias qdkey --ks-pass pass原创 2022-05-08 16:46:03 · 1174 阅读 · 0 评论 -
ADB常用命令,Android无线调试
连接手机: adb tcpip 5555 切换到WIFI无线调试(adb tcpip和adb connect的端口号5555可以随意指定,但要保持一致) adb connect 172.31.2.25:5555 连接手机(adb tcpip和adb connect的端口号5555可以随意指定,但要保持一致)ADB命令: adb install -r E:\SDR.apk 安装apk adb shell rm /sdcard/Android/data...............原创 2022-02-11 09:44:50 · 2450 阅读 · 0 评论 -
Activity启动流程步骤
1.Launcher进程通过IPC向AMS发送startActivity请求,在execStartActivity方法中通过获取AMS的代理,调用代理的startActivity方法2.AMS调用startProcessLocked方法向Zygote进程发送创建应用进程请求3.Zygote进程创建应用进程4.应用进程启动ActivityThread...原创 2022-01-20 10:08:29 · 436 阅读 · 0 评论 -
Handler
Handler消息机制原理:在主线程创建handler,在构造方法中传入当前线程的looper并重写handleMessage方法。子线程通过handler的sendMessageAtTime发送消息,在sendMessageAtTime方法中获取主线程的消息队列,并将当前handler赋值给message中的target属性并通过消息队列的enqueueMessage方法将message插入到消息队列中。looper通过for死循环不断的访问消息队列中的next方法获取message,如果messag原创 2021-11-09 14:54:49 · 598 阅读 · 0 评论 -
catagory,action,data隐式启动匹配规则
如下这种写法可以匹配成功 Intent intent = new Intent();// intent.setAction("com.action.123"); intent.setAction("com.action.456"); intent.addCategory("android.intent.category.DEFAULT");//即使代码里不写系统也会默认添加,所以必须在清单文件中配置这个cat原创 2021-10-21 13:16:14 · 1379 阅读 · 0 评论 -
Android获取文件夹,文件大小
public class FileSizeUtil { private static final String TAG=FileSizeUtil.class.getSimpleName(); public static final int SIZETYPE_B = 1;//获取文件大小单位为B的double值 public static final int SIZETYPE_KB = 2;//获取文件大小单位为KB的double值 public static final .转载 2021-04-30 13:20:00 · 1891 阅读 · 0 评论 -
ExpandableListView的item点击监听事件
android:descendantFocusability属性如下:beforeDescendants:viewgroup会优先其子类控件而获取到焦点afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点...原创 2021-04-30 13:16:30 · 344 阅读 · 0 评论 -
Android使用RSA分段加解密
RSA为非对称加密,加解密用一对秘钥(公钥,私钥)公钥和私钥成对出现,是相对的,没有规定哪个必须是公钥哪个必须是私钥 用公钥加密的数据只有对应的私钥可以解密 用私钥加密的数据只有对应的公钥可以解密 如果可以用公钥解密,则必然是对应的私钥加的密 如果可以用私钥解密,则必然是对应的公钥加的密1、RSA工具类/** * RSA 非对称加密算法,加解密工具类, * 加密长度 不能超过 128 个字节。 */@RequiresApi(api = Build.VERSION_CODES.KI原创 2021-04-23 09:04:48 · 877 阅读 · 1 评论 -
Android使用AES加解密
AES为对称加密,加解密用一套秘钥,秘钥自己随便定义(长度必须为16 或 32 个字符)1.AES工具类/** * AES 对称加密算法,加解密工具类 */@RequiresApi(api = Build.VERSION_CODES.KITKAT)public class AES { private static final String TAG = AES.class.getSimpleName() + " --> "; /** * 加密算法原创 2021-04-23 08:48:00 · 4701 阅读 · 1 评论 -
安卓懒加载
https://juejin.im/entry/58339da667f356005bfd3646Retrofit2.0+RxJava2安卓网络构架搭建,支持缓存,文件上传,cookie管理等https://github.com/addxing/NetRequestDemo.git转载 2018-04-09 07:52:29 · 248 阅读 · 0 评论 -
Android代码中动态指定控件大小注意事项
java代码: LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) 控件.getLayoutParams(); params.height = ScreenUtil.getScreenWidth(getActivity())*195/750; params.width...原创 2018-02-27 13:16:35 · 253 阅读 · 0 评论 -
Android Studio配置使debug签名和release签名一致
1.在module的build.gradle中添加// 红色为新添加的android {signingConfigs { release { keyAlias 'jxt' keyPassword '123456' storeFile file('F:/qianming/jxt.key')...原创 2017-10-16 16:56:43 · 3143 阅读 · 1 评论 -
App架构设计
Retrofit2.0+RxJava2安卓网络构架搭建,支持缓存,文件上传,cookie管理等https://github.com/addxing/NetRequestDemo.git原创 2017-07-15 11:17:37 · 427 阅读 · 0 评论 -
安卓ios开发尺寸对应关系
1、 Android与ios尺寸对应关系: drawable-ldpi=iphone@0.75x drawable-mdpi=iphone@1x drawable-hdpi=iphone@1.5x drawable-xhdpi=iphone@2x drawable-xxhdpi=iphone@3x...转载 2017-11-20 10:07:22 · 3155 阅读 · 0 评论 -
Android 引入远程依赖导致jar包冲突解决
Android 引入远程依赖导致jar包冲突,可以通过指定不编译冲突的模块解决例如: implementation('org.hibernate:hibernate:3.1') { //不同版本同时被依赖时,那么强制依赖这个版本的,默认false force = true //exclude可以设置不编译指定的模块,有三种写法: exclud...原创 2018-04-26 13:24:53 · 3023 阅读 · 0 评论