Android笔记
文章平均质量分 62
superyu1992
Java/Android/Python/Go
展开
-
#Android反编译#零基础脱掉360加固包的“外衣”
我们在开发App的过程中为了保护自己的劳动成果不被剽窃,也为了保证接口不被暴露,通常在上架之前做一些混淆或者加固的处理,市面上也有不少加固工具,更有甚者在某些平台上线App必须使用该平台的加固工具进行加固后才可上线!这些加固真的靠谱吗?这两天我就对通过某60加固的App下手了,结果作为逆向零基础的小白,用了大约两天的时间,就成功脱壳了。。。下面就来分享一下我这几天的学习与破解过程。(下面的分享都是...原创 2020-04-29 17:41:20 · 21369 阅读 · 12 评论 -
#Android笔记# 超级足球app 开发总结(三)—— CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout实现两种折叠效果
最近利用业余时间,开发了一款基于懂球帝接口数据的足球资讯app,整体的UI也是仿照懂球帝设计的。这是一个比较综合的项目,用到了不少以前没用过的组件和api,而且产生了很多新的开发思路,有些实现方式也是自己琢磨的,所以值得做一些记录,可能还存在瑕疵和可以优化的地方,也希望大家给我多指正。折叠式布局在app中已经十分常见,一方面它可以方便用户在同一个页面看到尽可能多的内容,另一方面它的动画效果也比...原创 2020-03-20 17:12:29 · 1223 阅读 · 1 评论 -
#Android笔记# 超级足球app 开发总结(二)—— SpannableString根据标记插入文字实现图文混排
最近利用业余时间,开发了一款基于懂球帝接口数据的足球资讯app,整体的UI也是仿照懂球帝设计的。这是一个比较综合的项目,用到了不少以前没用过的组件和api,而且产生了很多新的开发思路,有些实现方式也是自己琢磨的,所以值得做一些记录,可能还存在瑕疵和可以优化的地方,也希望大家给我多指正。先看一看接口返回的数据(数据结构比较长,这里只截取了部分用到的数据):可以看到,懂球帝这里是通过f...原创 2020-03-11 17:31:21 · 597 阅读 · 0 评论 -
#Android笔记# 超级足球app 开发总结(一)—— 项目组件化与路由的使用
最近利用业余时间,开发了一款基于懂球帝接口数据的足球资讯app,整体的UI也是仿照懂球帝设计的。这是一个比较综合的项目,用到了不少以前没用过的组件和api,而且产生了很多新的开发思路,有些实现方式也是自己琢磨的,所以值得做一些记录,可能还存在瑕疵和可以优化的地方,也希望大家给我多指正。一、组件化模块项目主要采用的是模块组件化的架构。组件化或者说模块化实现业务分离一直是项目研发与管理的大...原创 2020-03-11 14:19:04 · 489 阅读 · 2 评论 -
#Android开发#解决TabLayout自定义tabView左右自带padding的问题
<style name="NoPaddingTabLayout" parent="Widget.Design.TabLayout"> <item name="tabPaddingStart">0dp</item> <item name="tabPaddingEnd">0dp</item></style>原创 2020-03-02 17:23:45 · 1265 阅读 · 0 评论 -
#Android笔记#Android将自己的应用转成系统应用及卸载系统应用
真的是好久都没有写博客了,前段时间刚忙完一个即时通讯APP,叫做宠遇(有兴趣的童鞋可以去各大应用市场去下载)由于这个项目赶得急,很多项目过程中遇到的问题和经验都没什么时间去总结,甚是遗憾,以后有时间再梳理把...最近又开始做起了安卓平板开发,做一个学校的电子班牌,这个项目涉及到一些系统底层的开发,是自己以前没有接触过的,所以在这里先记录一下。由于是将app安装在平板上并且是放在公共区域,要防止...原创 2019-06-10 17:08:30 · 2070 阅读 · 1 评论 -
Androdi注入js实现网页放大
// 注入js函数监听 private void addImageClickListner() { // 这段js函数的功能就是,遍历所有的img几点,并添加onclick函数,函数的功能是在图片点击的时候调用本地java接口并传递url过去 webview.loadUrl("javascript:(function(){" +原创 2017-01-12 14:56:34 · 526 阅读 · 0 评论 -
Android ListView 子控件onClick正确获取position
在实际开发中,我们有时候不仅需要响应ListView的onItemClick,还需要响应其子控件的点击事件,这个时候我们就会发现,由于复用等原因,如果直接在子控件的onClick事件中调用getView()中的position,会出现数据或显示错位的问题,原因就是position的值出现了重复或不准确,解决这个问题的方法是,在adapter每次加载数据的时候,为需要点击的控件设置一个t原创 2017-01-20 14:50:25 · 2895 阅读 · 1 评论 -
Android 解决SwipeRefreshLayout与ListView和ScrollView滑动冲突
SwipeRefreshLayout与ScrollView滑动冲突: scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { @Override public void onScrollChanged() { if原创 2017-03-06 15:35:56 · 2131 阅读 · 0 评论 -
Android解决图片上传过大问题
最近在实现一个多图上传的功能(以流的形式上传),发现当上传图片超过5张的时候,就会报内存溢出的问题,去相册查看了一下,原来现在每张照片都占到2,3mb,如果几张大图就这么直接加载到内存中,肯定会溢出的,因此必须对图片进行处理。经过一番查找和研究,终于找到了一个比较合适的方法去处理:public static byte[] getSmallBitmapToBaos(String filePa原创 2017-01-10 15:14:56 · 5254 阅读 · 0 评论 -
#即时通讯#实现消息已读回执功能的思路与实现
最近项目的聊天模块中增加了一个消息已读回执的功能,从技术上不是很难实现,但还是在这里记录一下,以便以后查阅。所谓的消息已读回执,就是双方聊天时,如果对方看到了你新发的信息,这条消息在你这端就会标为“已读”,否则将是“未读”。(吐槽一下:这个需求确实反人类!)整个功能流程如图:A发送一条消息给B,B接收了,如果B此时打开聊天主界面,查看了消息,B就再发一条“回执”(携原创 2016-11-02 09:44:50 · 16660 阅读 · 8 评论 -
Android升级到6.0后找不到org.apache.http的解决办法
项目最近升级到了6.0,发现很多原来的旧方法都无法使用了,包括httpclient,查了一下官方手册,果然是不支持了,现在支持的是HttpUrlConnection。后来在android_sdk_windows\platforms\android-23\optional下找到了org.apache.http.legacy.jar,导入到libs中就ok了!当然了,如果是Android Stud原创 2016-09-23 14:06:05 · 670 阅读 · 0 评论 -
Android pagerSlidingTab自定义滑动条(indicator)宽度
PagerSlidingTab + ViewPager 是现在比较常见的控件组合(或者说是本人用的比较多的一种...),虽说它提供的接口已经比较完善,但难免还是不能满足所有需求,最近就碰上了一个需求,需要指定tab的宽度,PagerSlidingTab暂时还未提供这个接口,那就自己写一个吧~PagerSlingTab提供了一个叫“shouldExpand”的布尔类型的属性,如果是t原创 2016-09-02 09:59:56 · 2519 阅读 · 0 评论 -
Android 支付宝开发错误总结
1、4.0以上机型出现Java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag原因:android4.0以上版本问题解决办法:在SignUtils中将KeyFactory k原创 2016-05-10 15:25:06 · 10407 阅读 · 0 评论 -
Android 通过注入js实现读取webview中图片并放大的优化
之前曾经写过一篇关于通过注入js获取并放大webview图片的博客,但是最近项目又有了新的需求,需要点击webview中某张图后,获得该网页的所有图片,并且跳转后要跳到该图片对应的索引位置,因此就必须要修改原来的js了: // 注入js函数监听 private void addImageClickListner() { // 这段js函数的功能就是,遍历所有的img几点,并添加oncl原创 2017-04-10 16:03:13 · 1447 阅读 · 4 评论 -
Android 解决由于使用SlidingMenu导致虚拟键盘挡住底部菜单栏的问题
最近发现当项目运行在5.0以上且带有虚拟键盘的手机上时会出现虚拟键盘挡住项目底部菜单栏的问题,试了若干方法,比如这个链接,但效果并不是很理想,后来发现原来是使用了SlidingMenu这个框架造成的,修改其中SlidingMenu下的fitSystemWindows即可解决这个问题:/* (non-Javadoc) * @see android.view.ViewGroup#fitSy原创 2017-04-05 11:16:47 · 1187 阅读 · 1 评论 -
#Android开发#解决组件化开发中butterknife在libray中使用的问题(attribute value must be constant)
最近在进行组件化项目构建的时候,发现在libray中,也就是在业务module中,使用butterknife的bindview总会报错:attribute value must be constant,后来百度之后找到了解决的方法,这里先做一下简单记录,以后再来细究:解决问题的路径:1、http://www.mamicode.com/info-detail-1558724.html(问题原因)...原创 2019-08-23 16:47:22 · 2445 阅读 · 0 评论 -
#Android笔记#Android动画总结(三) 属性动画
视图(补间)动画的局限性之前通过两篇文章介绍完了视图动画,其实从中我们也可以发现,补间动画只适用于简单的动画效果并且它完成的只是动画效果的展示,并没有能改变视图的属性,举个例子,一个按钮从(0,0)位移到(100,100),如果使用补间动画,会发现在当前位置(100,100)处点击按钮不能响应点击事件,说明按钮的位置属性并没有改变;再有,补间动画的组合效果也存在一定的局限性,无法实现动画的按序...原创 2019-08-06 11:03:59 · 289 阅读 · 0 评论 -
#Android笔记#通过RSA加密请求参数,防止数据被抓包
最近在做南京某高校的电子班牌项目,其中涉及到一些敏感数据,需要做一定的加密处理。正好之前实习的时候,做过一个课程电子书的项目,也是高校相关的,领导希望将其中的课程讲义进行加密处理,防止app被反编译或抓包后泄漏信息,那段时间研究对比了不少加密算法,比如AES、DES、MD5和RSA等(有说说为证~),综合考虑下来,RSA是目前比较靠谱的选择,当时就使用了RSA加密算法,只可惜当时没有记录,现在想用...原创 2019-07-23 11:22:54 · 811 阅读 · 0 评论 -
#Android笔记#Android动画总结(一) 视图动画之补间动画
Android动画可以分为视图动画和属性动画,视图动画又可以分为补间动画和帧动画,分类图如下:今天就来先总结一下视图动画。视图动画出现于Android1.0时代,顾名思义,它主要作用于视图View,可以细分为补间动画和帧动画;补间动画:一、概念1、动画开始的样式(位置、状态等)与动画结束的样式(位置、状态等)是由开发者设置的,而变化过程由系统来补全;2、补间动画可以实现...原创 2019-07-26 17:30:55 · 218 阅读 · 0 评论 -
#Android笔记#Android动画总结(二) 视图动画之帧动画
一、概念1、帧动画也是视图动画的一个分类,它的原理就是将多找图片一张一张的放出,形成动画的效果。2、帧动画适合去做一些比较复杂的动画效果。3、帧动画主要是通过AnimationDrawable去实现效果的。二、AnimationDrawable1、简介该实体类用于创建逐帧动画,它的父类是DrawableContainer,而DrawableContainer父类又是Draw...原创 2019-07-30 16:22:26 · 199 阅读 · 0 评论 -
#Android笔记#解决textview使用SpannableString实现图文混排并设置了行高时,图片与文字显示混乱
利用TextView+SpannableString实现了如图所示的图文混排效果:但是可以看出标题的行间距还是有点小的,显得整个布局很挤,因此需要修改一下行间距,不过修改行间距之后发现,图片与文字的显示出现了错乱:后来在网上百度到的解决方法,重写ImageSpan,重新计算前面图片的位置:public class MyImageSpan extends ImageSpan {...原创 2019-07-05 15:02:01 · 1543 阅读 · 0 评论 -
#kotlin学习笔记#kotlin的安装与第一行Kotlin代码
前不久,在Google I/O大会上,Google爸爸正式提出了将kotlin作为android开发的第一语言!作为小小工程师还不得赶紧学习起来,以备不时之需!Kotlin的安装首先,你可以直接下载Android studio 3.0 preview1,里面已经预装了kotlin,下载地址:点击打开链接;当然你也可以直接在现有的AS上安装Kotlin插件,如图:下载的速原创 2017-05-23 11:39:46 · 344 阅读 · 0 评论 -
#xmpp笔记# Android获取openfire离线消息
Android实现openfire获取离线消息的基本思路:在用户连接登录openfire之前,先连接一次openfire,并且要配置ConnectionConfiguration,一定要设置SendPresence为false,即将在线状态设置为离线,然后才能接收到离线消息,处理完离线消息之后,记得要通知openfire服务器端,删除接收到的离线消息,并且设置再将状态设置为在线privat原创 2017-04-06 15:05:41 · 1562 阅读 · 0 评论 -
Android 蓝牙官方demo中的一个问题(service discovery failed)
最近项目中需要运用到蓝牙,在学习的过程中,发现使用官方的demo可以搜索到设备,但是连接时总会报错(service discovery failed),通过百度找到了一种解决方法,在此记录一下:将BluetoothChatService.java将 try { tmp = device.createRfcommSocketToServiceRecord(MY_原创 2016-06-20 10:16:26 · 1450 阅读 · 0 评论 -
#Xmpp开发# 解决Android和IOS可登录相同账号而不被挤掉的问题
最近在开发即时通讯模块的时候发现了一个问题:同平台之间可以相互挤掉用户,而跨平台也就是Android和IOS之间可以登录相同的账号,以Android为例,通常情况下,A设备在登录一个用户后,若B设备也登录相同账户,openfire后台就会把A设备的连接关掉,而A设备在连接监听中,也可以监听到自己被关闭的消息,从而去做一些处理。然而蹊跷的是,在实际过程中,IOS登录后,Android设备并没原创 2016-07-15 11:33:59 · 1995 阅读 · 0 评论 -
#Android笔记#简便地退出程序
公司今天没啥活,闲来无事,看了下最近新出的一本书----《第一行代码---Android》,发现其中一个关于Activity启动模式的代码片段很有用,拿出来先标记一下。思路大致是:通过一个ActivityCollector来对活动进行增加,删除等管理;然后创建一个BaseActivity来调用add()和remove()方法实现增加或删除Activity;当用户想要在某个Activity中退出原创 2015-06-23 09:47:28 · 349 阅读 · 0 评论 -
Android代码实现获得控件位置
int[] location = new int[2]; tv.getLocationOnScreen(location); int x = location[0]; int y = location[1];原创 2015-04-02 23:11:02 · 519 阅读 · 0 评论 -
#Android笔记#fragment+fragmentTabHost实现底部菜单栏
这是一个比较常见的底部菜单栏模式,网上相关的代码也很多,最近项目中接触到了,觉得以后会常用,自己记录一下,里面有注释,大家也可以参考一下~MainActivity.javapackage com.example.myfragment;import android.os.Bundle;import android.support.v4.app.FragmentActivity;im原创 2015-02-10 21:35:56 · 907 阅读 · 0 评论 -
ListView绑定适配器空指针问题发生的原因
出错位原创 2014-09-11 11:25:56 · 2011 阅读 · 0 评论 -
#Android笔记#四大组件之Service
Service作为Android四大组件之一,在开发中有非常重要的作用,也是面试中经常会提及的问题,因此很有必要好好研究一下。一、Service概述 引用一段官方api的描述:A Service is an application component representing either an application's desire to perform a lo原创 2015-01-12 20:26:10 · 464 阅读 · 0 评论 -
android虚拟机sdcard操作出现mkdir failed for , Read-only file system的解决办法
先:adb shell 后:mount -o remount ,rw /转载 2014-07-22 08:58:23 · 8678 阅读 · 1 评论 -
#Android笔记#Android使用Json交互需要添加网络权限!
如题,当使用json的时候,一定要切记客户端需要添加!!!!!!困扰了我两个小时的问题!!原创 2014-12-10 16:56:49 · 855 阅读 · 0 评论 -
#Andrioid笔记#引用Android library时(如vitamio)失败
今天在引用第三方库vitamio时,原创 2014-10-17 16:06:41 · 476 阅读 · 0 评论 -
android虚拟机上安装SD卡
在cmd命令行下,进入platform-tools目录下。 1.创建sdcard mksdcard -l mycard 256M E:\android\myCards\mysdcard.img 这样就在该目录下创建好了一个SD卡的虚拟镜像。其中-l命令行参数表示虚拟磁盘的卷标号。 256M是创建的虚拟sdcard的大小,在9M-102转载 2014-07-21 17:14:41 · 690 阅读 · 0 评论 -
#Android笔记#线程与消息处理之Handler
在Android开发中,我们经常需要做一些类似于从网络上下载图片,获取信息等这些耗时的操作,由于Android的anr机制,如果程序5秒钟没有得到响应,程序便会出现异常。由此,我们会想到使用线程来解决这个问题,将耗时的操作放到子线程中,当操作完成后,再更新主线程。但是,问题又来了,在Android中,线程是非安全的,因此不能再子线程中更新UI。因此,Android引入了Handler消息机制,来解原创 2015-01-10 21:32:23 · 453 阅读 · 0 评论 -
dialog与videoview结合,实现悬浮播放效果
mvv = new MyVideoView(ch.this);vv.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/"+ R.raw.video));//vv.setMediaController(new MediaController(ch.this));final Dialog men原创 2014-07-31 15:41:36 · 2322 阅读 · 0 评论 -
Android生成KeyStore
在我们发布应用时,基本都会需要进行加密;通过360,腾讯,爱加密等第三方加密方式可以较为便捷的实现加密,然而一般加密过后的apk都无法直接使用,必须通过签名工具对apk重写进行签名,签名需要提供一个app对应的keyStore,那么就需要利用jdk里面的keytool工具来获取keyStore。打开cmd,cd到jdk\bin所在的位置,接着输入keytool -genkey -a原创 2015-06-25 13:49:05 · 413 阅读 · 0 评论 -
自定义videoview实现全屏播放
最近的项目中需要横屏播放视频的功能,本来是想通过设置videoview宽高的方式来实现,不过后来发现效果不佳,遂决定自定义一个videoview来解决这个问题。代码如下:自定义view:package com.sac.widget;import android.R.integer;import android.content.Context;import android.uti原创 2015-06-08 17:14:16 · 4179 阅读 · 2 评论 -
解决listView与ScrollView滑动冲突的方法
今天开发项目的时候,需要联合使用listView与ScrollView这两个控件,listView实现水平滑动,ScrollView实现竖直滑动,结果发现listView水平滑动会被ScrollView的竖直方向所阻拦,重写了ScrollView的onInterceptTouchEvent时间使其返回false,就解决了这个问题。public class MyScrollView原创 2015-06-11 15:04:25 · 509 阅读 · 0 评论