- 博客(44)
- 资源 (8)
- 收藏
- 关注
原创 实现新闻频道管理
第四节主activitypackage com.tian.yao.four.channelimport android.util.Logimport android.view.Viewimport android.view.ViewGroupimport androidx.recyclerview.widget.GridLayoutManagerimport androidx.recyclerview.widget.RecyclerViewimport com.chad.libr.
2021-05-20 22:38:28
578
3
原创 使用ViewPager2+TabLayout设计主布局
第三节:主页的设计布局文件的设计:<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools">
2021-05-10 00:28:04
1230
5
原创 自定义ToastUtils
第二节:自定义ToastUtilsimport android.annotation.SuppressLintimport android.content.Contextimport android.view.Gravityimport android.view.LayoutInflaterimport android.view.Viewimport android.widget.TextViewimport android.widget.Toastimport com.tian.yao
2021-05-09 15:53:05
282
原创 自定义标题返回
第一节:自定义TitleViewimport android.app.Activityimport android.content.Contextimport android.graphics.Colorimport android.util.AttributeSetimport android.view.LayoutInflaterimport android.view.Viewimport android.widget.ImageViewimport android.widget.
2021-05-07 23:02:34
140
原创 android studio如何打jar包
1、新建mylibrary module库在android{}里面的最下方添加:代码为:task makeJar(type: Copy) { delete 'build/libs/myjar.jar' from('build/intermediates/packaged-classes/debug/') into('build/libs/') in...
2018-10-24 16:28:40
260
原创 ButterKnife内存泄漏问题
在butterKnife自动生成的代码(XXX_ViewBinding)中,里面有这样一段代码:view.setOnClickListener(new DebouncingOnClickListener() { @Override public void doClick(View p0) { target.onViewClicked(p0); }});该Deboun...
2018-10-18 15:21:57
1725
原创 面向对象式数据库框架
1、使用到的注解表注解:package com.winfo.gdmsaec.app.databasepro.annotations;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;im...
2018-07-25 18:14:18
327
原创 hermes进程间通信
1、主界面Activitypackage lwl.tianyao.hermes;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Toas...
2018-07-13 10:49:08
1085
原创 Android IPC机制
IPC是Inter-Process Communication的缩写,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。说起进程间通信,我们首先要理解什么是进程,什么是线程,进程和线程是截然不同的概念。按照操作系统中的描述,线程是CPU调度的最小单元,同时线程是一种有限的系统资源。而进程一般指一个执行单元,在PC和移动设备上指一个程序或一个应用。一个进程可以包含多个线程,...
2018-06-08 17:38:33
222
原创 动脑学院-网络请求框架
1、网络抽象层接口package lwl.tianyao.httpproject;import java.util.Map;/** * 网络抽象层接口 */public interface IHttpProcessor { void post(String url,Map<String,Object> params,final HttpCallback cal...
2018-05-29 23:34:08
781
原创 Android面试题
1、请简述Activity的生命周期答:onCreate(Bundle savedInstanceState)、onStart()、onResume()、onPause()、onStop()、onDestroy()、onRestart()2、请简述service的生命周期?启动方式?有何区别?答:通常有两种方式启动一个service,他们对service的生命周期是不一样的。第一种方式:start...
2018-05-29 20:40:57
167
原创 Proxy动态代理机制
代理模式的作用是为其他对象提供一种代理以控制对这个对象的访问,是控制器访问的方式,而不只是对方法扩展。声明一个共用的接口Subject:package com.intelink.wechat_lyl.test;public interface Subject { void doSomething();}具体实现类RealSubject:package com.intelink.w...
2018-05-29 12:32:48
317
原创 反射静态方法
package com.intelink.wechat_lyl.test;import java.lang.reflect.Method;public class Test { public static void main(String[] args){ try { Class clz= Class.forName("com.intelin...
2018-05-29 12:07:21
1895
原创 动脑学院-手写ButterKnife框架(不包含自动生成代码)
1、目录结构2、butterknife-annotions新增一个BindView接口package lwl.tianyao.butterknife_annotions;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.Reten...
2018-05-27 23:55:12
957
原创 动脑学院-自适应屏幕布局
1、自定义RelativeLayout布局package lwl.tianyao.testproject;import android.content.Context;import android.graphics.Canvas;import android.util.AttributeSet;import android.view.View;import android.widget...
2018-05-26 00:08:54
575
1
原创 异步服务IntentService
服务Service虽然是在后台运行,但跟Activity一样都在主线程中,如果后台运行着的服务挂起,用户界面就会卡着不动,俗称死机。后台服务经常要做一些耗时操作,比如批量处理、文件导入、网络访问等,此时不应该影响用户在界面上的操作,而应该开启分线程执行耗时操作。可以通过Thread+Handler机制实现异步处理,也可以通过Android封装好的异步服务IntentService处理。 ...
2018-05-25 19:58:30
793
原创 Android内存泄漏的预防
App开发中的内存泄漏常见于以下5个场景:1、数据库查询操作后并没有关闭游标Cursor。2、适配器Adapter刷新数据时没有重用convertView对象。3、Bitmap对象使用完毕后没有调用recycle方法回收内存。4、Activity引用了耗时对象,造成页面关闭时无法释放被引用的对象。5、给系统服务注册了监听任务,却没有及时注销。要想避免出现内存泄漏,最好的办法是防患于未然。针对以上5...
2018-05-21 21:55:12
264
原创 性能优化-内存泄漏优化
1、什么是内存泄漏?答:内存不在GC的掌控之内了。(1)垃圾回收机制GC,总结java的GC内存回收机制:某对象不再有任何的引用的时候才会进行回收。 GC回收机制的原理,可以作为GC Root引用点的是: 1)JavaStack中的引用的对象 2)方法区中静态引用指向的对象 3)方法区中常量引用指向的对象 4)Native方法中J...
2018-05-20 00:31:26
280
原创 Android面试题目
1、RecycleView如何优化?RecycleView中要加载多种不同样式的item该怎么实现?答:1、使用 ViewHolder复用布局 2、Bitmap 优化 3、避免内存泄漏,可以使用 Android Profiler 或者 LeakCanary来监测。 4、避免主线程中计算。如果有复杂计算,需要新创建进程。2、Android下解决滑动冲突的常见思路是什么?...
2018-05-09 22:09:29
190
原创 如何使用nexus上传代码,进行依赖
参考链接:https://www.jianshu.com/p/0629548ab5a4第一步:安装nexus-3.7.1-02-mac到本地第二步:在依赖库build.gradle文件上添加:apply plugin: 'maven'group = 'com.stone.jlib'version = '0.8.2'uploadArchives { repositories { ...
2018-02-10 10:28:38
1106
原创 kotlin ViewPager禁止滑动
原理很简单就是:onTouchEvent和onInterceptTouchEvent监听事件不让它们滑动package net.intelink.express.widgetimport android.content.Contextimport android.support.v4.view.ViewPagerimport android.util.AttributeSetimpo
2017-12-19 10:17:00
1133
原创 kotlin如何使用FragmentPagerAdapter
主界面Activity的代码:import android.os.Bundleimport android.support.v4.app.Fragmentimport android.support.v4.app.FragmentManagerimport android.support.v4.app.FragmentPagerAdapterimport android.support
2017-12-18 18:14:49
5174
1
原创 Android 3.0找不到butterknife-7.0.1.jar
错误日志:Error:Execution failed for task ':app:javaPreCompileDebug'.> Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain a
2017-12-18 10:49:20
2880
原创 AndroidStudio3.0.1安装视频
1、AndroidStudio2.3.3直接升级3.0升级失败了,打开后,有个错误,不知道怎么解决,只能暴力一点重新安装。2、以下是百度云链接,里面有AS 3.0的安装包以及如何创建一个最简单的应用。链接:https://pan.baidu.com/s/1i5eokQT 密码:h3wr
2017-12-07 19:54:12
1561
原创 Android Studio集成扫描头
本文是学习了一片枫叶的扫描头,自己做了一个例子,原文链接是http://blog.youkuaiyun.com/qq_23547831/article/details/52037710简单的截图一下这是主页面这是扫描页面代码:http://download.youkuaiyun.com/download/u012516952/9999225
2017-09-28 10:50:51
847
原创 RecyclerView Bug:IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter的解决方案
看了别的文章,懂了一个道理,list的数据,要和adpater数据同步,例如,list.clear(),执行后,要立即调用notifyDataSetChanged(),而不是等到网络请求完后,在调用notifyDataSetChanged()。意思是每当list集合改变时,就立马调用通知。这样就没报错了。希望对你们有帮助。
2017-08-14 17:33:12
602
原创 Activity的AsyncTask请求
工具类ActivityUtils代码:import android.app.ProgressDialog;import android.content.Context;import android.os.AsyncTask;import java.util.concurrent.Callable;public class ActivityUtils { private s
2016-10-20 11:58:55
316
原创 用回调封装OKHttp
1、封装String字符串private static void request(String url,final Callback callback){ final Handler handler =new Handler(){ @Override public void handleMessage(Message msg) { super.handleMess
2016-10-18 11:53:09
594
原创 获取手机设备号
protected String getDeviceId() { String DeviceId = ""; try { TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE); DeviceId = tm.ge
2016-07-28 15:08:08
966
原创 Toast处理
protected void showText(Context context, String message) { if (mToast == null) { mToast = Toast.makeText(context, message, Toast.LENGTH_SHORT); } else { mToast.
2016-07-28 15:02:57
453
原创 String字符串非空判断
public static boolean isEmpty(String input) { if (input == null || "".equals(input)) return true; for (int i = 0; i < input.length(); i++) { char c = input.charAt(i); if (c != ' ' && c !
2016-07-28 14:55:16
812
原创 这是对上一篇文件进行优化,加入了服务service
主界面代码:import java.util.ArrayList;import java.util.List;import net.intelink.express.SZYDPDA.R;import net.intelink.express.adapter.CommonAdapter;import net.intelink.express.adapter.ViewHolder;im
2016-05-13 17:53:06
533
原创 蓝牙连接电子称以及解析电子称返回的数据
import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.UUID;import net.intelink.express.SZYDPDA.R;impor
2016-05-12 15:34:45
9586
6
原创 SQLite数据库用法
SQLite基类代码:import net.intelink.express.db.DBOpenHelper;import android.content.Context;public class SQLiteDaoBase { protected DBOpenHelper dbHelper; public SQLiteDaoBase(Context context) { t
2016-01-20 09:35:04
533
原创 AlertDialog.Builder用法
AlertDialog.Builder代码new AlertDialog.Builder(AddAddressActivity.this).setTitle("温馨提示").setMessage("保存就把数据保存到收件扫描收货地址中,删除就把该条数据删除了.").setPositiveButton("保存", new DialogInterface.OnClickListener() {
2016-01-19 15:59:45
690
原创 DBOpenHelper用法
DBOpenHelper用法import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class DBOpenHelper extends SQLiteOpenHelper{ pu
2016-01-19 15:57:14
8023
原创 SoundPool播放Assets资源
SoundPool播放Assets资源代码:protected SoundPool soundPool=null; protected HashMap soundMap = new HashMap(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanc
2016-01-16 11:24:09
1027
原创 soundPool简单用法
soundPool用法: protected SoundPool soundPool=new SoundPool(1, AudioManager.STREAM_MUSIC, 0); protected HashMap soundMap = new HashMap(); @Override protected void onCreate(Bundle savedInstanceState
2016-01-16 10:46:24
653
原创 根据文件名称播放Assets资源
这一段代码是我在开发过程中遇到的问题,就是播放资源文件,在开发中我用到了raw资源,但总觉得不太好用,因为播放资源都是要用到R.raw.XXX,所以我的解决办法是通过Assets资源播放。这是我写的一段代码,供你们参考一下:package com.example.rawread;import java.io.IOException;import android.content.re
2016-01-14 10:09:47
445
原创 Java通过文件路径下载文件
根据一个文件的路径,同时截取这个下载文件的文件名,把他从服务器上下载下来。package com.fedex.servlet;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import javax.serv
2016-01-13 15:24:54
3792
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人