- 博客(21)
- 收藏
- 关注
原创 Tinker 的具体使用
//模拟效果:就是项目布局的textView为1,通过热修复改为2public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedI
2017-10-17 13:37:38 565
原创 tinker搭建环境
1.整个项目工作空间的build.gradle的配置 dependencies {classpath'com.android.tools.build:gradle:2.2.0'//注意:这里用的是双引号 ",否则${TINKER_VERSION}无法正确使用,在gradle.properties下加入版本TINKER_VERSIO
2017-10-17 13:32:46 454
原创 初识 Tinker 热修复
为什么使用热修复:线上程序出现Bug,在不想重新发布包让用户更新安装的情况下,可以使用热修复,让用户在不知不觉就修复了程序的问题. 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App、测试、向各个应用市场和渠道换包、提示用户升级、用户下载、覆盖安装。有时候仅仅是为了修改了一行代码,也要付出巨大的成本进行换包和重新发
2017-10-17 13:24:22 265
原创 属性动画之☞valueanimator
//valueanimator实现的动画 //不需要设置操作的属性,这就是和objectanimator的区别 //好处,不需要操作对象的属性,一定要有getter和settter方法,可以根据当前动画的计算值,来操作任何属性 @Override protected void onCreate(Bundle savedInstanceState) {
2017-09-13 20:45:51 273
原创 初识 Eventbus
EventBus 听起来好像很厉害的样子:哪么他是用来干什么的呢?EventBus 是一个通信框架,,,线程与线程之间的通信,在认识它之前是用Handler来进行通信的.EventBus是一款针对Android的publish/subscribe(发布 / 订阅)消息事件总线,它简化了组件之间的通信,使我们的应用程序更加简单、通信更加快捷。再来看看它的组成E
2017-09-13 14:11:28 224
原创 属性动画____简化认识
首先介绍一下补间动画与属性动画的一些区别: 补间动画的特性:a.渐变动画支持四种类型:平移(Translate)、旋转(Rotate)、缩放(Scale)、不透明度 b. 只是显示的位置变动,View的实际位置未改变,表现为View移动到其他地方,点击事件仍在原处才能响应。补间动画的优缺点:缺点:当平移动画执行完停在最后的位置,结果焦点还在原
2017-09-12 09:44:25 278 1
原创 Android 属性动画
不多说直接上代码main类import android.animation.AnimatorSet;import android.animation.ObjectAnimator;import android.animation.PropertyValuesHolder;import android.animation.TypeEvaluator;imp
2017-09-10 20:37:39 209
原创 Android RecyclerView瀑布流
RecyclerView相信大家都有一定了解,通过导入support-v7进行使用,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecoration , ItemAnimator实现一些非常炫效果。今天就来写一个RecyclerView的瀑布流,供大家点评;首先导入依赖:compile 'com.and
2017-09-10 20:03:44 2802
原创 okhttp的二次封装(基本使用)
OKhttp,我们都知道,是当前特别受欢迎的框架,但是还是有存在着它的缺点,比如:冗余的对象,大量固定且反复的代码,,在开发过程中,效率有待提高,而且对应用的性能也是,待优化,, 所以就有了ok的二次封装,接下来就进入主题. 在封装之前,我们需要了解需要干什么,这么做的目的,,,我在这里就只是简单实现功能,主要是了解二次封装的思路,,以及单例模式这种常用的设计模式,,
2017-09-07 13:58:52 2104
原创 android自定义控件之三角绕圆环旋转 +改变速度+改变颜色
今天来玩一个好玩的,,那就是自定义View,相信大家都对这个东西有一定的了解,我就不多废话了,大神的资料多得是,可以自行查看学习,然后在来玩耍....... 先上个效果图,欢迎各位大牛点评不多说,直接上代码,,步骤都在注释中首先 创建 MyCustomCircleArrowView 类 继承 Viewpublic class
2017-09-04 20:45:32 1059
原创 android 初识APK瘦身
apk瘦身,顾名思义,,就是对android应用进行体积的减小,开启混淆的时候,就会有瘦身开启minifyEnabled混淆代码在.gradle使用minifyEnabled进行Proguard混淆的配置,可减小APP大小:android {buildTypes {release {minifyEnabled true//
2017-08-30 14:29:26 249
原创 多渠道打包的多种方式实现(炒鸡简单)
原理很简单直接上代码::::::上代码://在类中写方法进行获取标识private String getChannel() {try {PackageManager pm = getPackageManager();ApplicationInfo appInfo = pm.getApplicationInfo(getPackageNa
2017-08-29 20:27:25 380
原创 讯飞语音的 简单实现
此处没有注明SDK的集成,,,请小伙伴到科大的平台自行集成/** * ATTENTION: This was auto-generated to implement the App Indexing API. * See https://g.co/AppIndexing/AndroidStudio for more information. */ p
2017-08-24 11:17:53 550
原创 android 频道管理的实现
首先,,创建数据库////////// sqLiteDatabase.execSQL("create table item(id integer primary key autoincrement,title text)");MainActivity中进行逻辑操作/////////////public class MainActivity extends
2017-08-24 09:42:45 388
原创 WebView 的基本使用
不多说,直接上代码,注解还是比较清楚的 ,布局非常简单public class MainActivity extends AppCompatActivity { private WebView www_wb; private EditText path_et; private ProgressBar webView_pb; //
2017-08-24 09:31:29 222
原创 Android 自定义控件的画画扳的简单实现
核心思路运用的是图片作画,实际上是对图片进行修改,起到画图的效果public class MainActivity extends AppCompatActivity implements View.OnClickListener { private ImageView mImage; /** * 修改颜色 */ private Button mButColo
2017-08-16 09:49:55 277
原创 自定义View控件值ScrollView,监听实现标题透明到显示
首先先缕清思路,需要的效果,用到的东西,实现过程,做好笔记/** * 扩展式自定义View 在ScrollView的基础上添加新的功能 * 1.类继承基础控件 * 2.自定义一个ScrollView滑动监听的接口 * 3.覆写ScrollView自带的一个滑动监听 * 4.提供方法,让外界可以设置ScrollView的监听对象 * 5.使用ObserbvableScrollVie
2017-08-16 09:43:45 220
原创 夜间模式的切换
首先colors.xml中,进行定义两套颜色区分夜间模式 name="colorPrimary">#3F51B5 name="colorPrimaryDark">#303F9F name="colorAccent">#FF4081 name="nightColorPrimary">#3b3b3b name="nightColorPrimaryDar
2017-08-04 14:12:27 336
原创 获取手机WIFI 数据的 IP
注意权限问题 android:name="android.permission.ACCESS_NETWORK_STATE" >android:name="android.permission.INTERNET"/>android:name="android.permission.ACCESS_WIFI_STATE">public static String getIPAddress(Co
2017-08-03 20:37:50 994
原创 button 的拖动
private Button movebtn; //可拖动按钮 private boolean clickormove = true; //点击或拖动,点击为true,拖动为false private int downX, downY; //按下时的X,Y坐标 private boolean hasMeasured =
2017-08-03 09:28:21 659 1
原创 Android 获取联系人和电话号码
获取联系人和电话号码private void queryContactPhoneNumber() { String[] cols = {ContactsContract.PhoneLookup.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER}; Cursor cursor = getCo
2017-08-02 10:05:41 1595
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人