Android
lioil.win
这个作者很懒,什么都没留下…
展开
-
Android-USB-OTG-读写U盘文件
参考: https://developer.android.com/guide/topics/connectivity/usb/host.html https://blog.csdn.net/csdn635406113/article/details/70146041 https://blog.csdn.net/qq_29924041/article/details/80141514本文...原创 2018-07-04 20:19:01 · 6276 阅读 · 7 评论 -
Android-把Android Studio改为Eclipse项目结构
sourceSets {main {manifest.srcFile 'AndroidManifest.xml' // 方法一, 自定义的Eclipse项目结构,会覆盖掉Android Studio默认项目结构 java.srcDirs = ['src'] resources.srcDirs = ['src']aidl.srcDirs = ['src'] renderscript.srcDirs = [原创 2017-08-07 14:34:30 · 1123 阅读 · 0 评论 -
Android-SurfaceView示例
SurfaceView功能简述:1.Provide a dedicated drawing surface embedded inside of a view hierarchy.2.Provide a surface in which a secondary thread can render in to the screen.SurfaceView注意事项:1.All SurfaceView and Surfac原创 2017-07-27 23:57:21 · 637 阅读 · 0 评论 -
Android-Studio多个项目添加依赖同一个模块
https://stackoverflow.com/questions/16588064/how-do-i-add-a-library-project-to-android-studio, eclipse多个工作空间引用同一个项目不导入副本 同样在Android Studio提供的import moudl,会复制副本模块,project(':').projectDir = new File(),多个项目依赖同一个模块原创 2017-07-24 23:05:13 · 3535 阅读 · 0 评论 -
Android-Smali-入门介绍/基础语法
Smali中语法:类型 v void 只能用于返回值类型 Z boolean B byte S short C char I int J long 2个寄存器 F float D double 2个寄存器对象类型:Lpackage/name/ObjectName; 相当于java中的package.name.ObjectName;解原创 2017-06-09 23:59:22 · 1678 阅读 · 0 评论 -
Android-系统启动过程
参考:http://blog.jobbole.com/67931/介绍Android是基于Linux的开源系统,Android前期启动过程与Linux相似, 后期不同!大致流程:加载引导——>引导系统——>启动内核——>init进程 ——>Zygote(虚拟机VM)———>系统服务——>启动完成,发送开机广播一.加载引导当电源按下,引导程序开始从预定义位置(固化在ROM)开始执原创 2017-05-31 23:15:49 · 462 阅读 · 0 评论 -
Android-应用启动过程
一.在桌面或抽屉显示应用图标桌面或抽屉就是一个普通APP应用,用于显示所有应用图标含有以下intent意图的Activity会显示在桌面或抽屉<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAU原创 2017-06-07 23:40:41 · 542 阅读 · 0 评论 -
Android-Studio-gradle版本出错问题
一.Android Studio版本与gradle插件版本这两个版本不匹配,有时会编译不了在build.gradle修改gradle插件版本,与Android studio版本匹配dependencies { classpath 'com.android.tools.build:gradle:2.3.1'} 一般情况,Android studio版本与gradle插件版本一致,例原创 2017-05-29 12:47:24 · 2509 阅读 · 0 评论 -
Android-SDK默认混淆配置ProGuard
一.介绍通常情况下编译后的字节码包含了大量调试信息(如源类名/行号等)混淆代码就能删除这些调试信息,并用无意义字符替换所有名字,增加反编译难度!ProGuard是一个混淆代码的开源项目,主要作用如下: 混淆Obfuscate 用无意义字符替换类名/字段名/属性名/方法名等 压缩Shrink 移除无用类/字段/属性/方法 优化Optimize 移除无用字节码指令 预检原创 2017-05-27 22:30:47 · 1164 阅读 · 0 评论 -
Android-View自定义属性-简化写法
一.声明属性类型(res/values/attrs.xml)1.自定义属性正式写法,必须有此步骤,属性类型多样(int,float,boolean,enum....)2.自定义属性简化写法,可忽略此步骤,但属性类型只有字符串<resources> <declare-styleable name="decAttrs"> <attr name="name" format="原创 2017-05-23 23:58:35 · 630 阅读 · 0 评论 -
Android-ViewPager-循环滑动(轮播)
一.问题ViewPager可以左右滑动页, 但是不能从首页跳到最后页,也不能从最后页跳到首页。这就限制左右循环滑动的功能, 难以实现轮播效果!二.解决方法方法一监听ViewPager滑动状态1.当首页向右滑时, 把当前页设为最后页;2.当最后页向左滑时, 把当前页设为首页!缺陷:很明显首页和最后页过渡效果差,动画效果不好控制,麻烦!方法二1.把ViewPager总页数设为整数最大值,欺骗原创 2017-05-22 23:52:32 · 529 阅读 · 0 评论 -
Android-数据库-ORM框架
一.ORM介绍对象关系映射Object Relational Mapping, 用于实现面向对象编程里不同系统数据之间转换! 面向对象是从耦合/聚合/封装的基础上发展, 关系数据库是从数学理论发展而来; 两套理论存在显著的区别, ORM对象关系映射就是为了解决它们之间的差异!直白地说,ORM建立对象和数据库表的对应关系,方便程序员直接用对象操作数据库!二.Java的ORM框架Hibernate,原创 2017-05-14 17:48:46 · 825 阅读 · 0 评论 -
Android-Widget桌面应用小部件
官方文档中国版: https://developer.android.google.cn/guide/index.html?q=widget 这个网站是谷歌2016年底为中国开发者提供中国版,方便访问!一.介绍Android Widget是桌面应用小部件,可嵌入桌面,并可周期性更新Widget界面! 例如在桌面的天气,日历类小工具就是Widget部件!二.创建Widget广播接收器p原创 2017-05-10 23:47:03 · 1254 阅读 · 0 评论 -
Android-查看隐藏的API源码
介绍在查看Android API源码时,Android.jar内部有大量@hide注解的代码, 无论是用Eclipse还是Android Studio都会隐藏有@hide注解的代码! 因此我们查看API源码会发现很多类找不到错误,如PhoneWindow,ActivityThread等都没有找到,我早期看API时就很恼火! 这时只能去Android SDK源码目录搜索PhoneWindow.j原创 2017-05-08 22:44:55 · 3270 阅读 · 1 评论 -
Android-读取所有联系人的简洁方法
Android-获取所有联系人的最简洁代码 搜了网上的获取所有联系人的代码,都是要连续查询两三个表才可以得到姓名和手机号信息, 太繁琐了,实际上使用android.provider.ContactsContract.CommonDataKinds.Phone 这个类可以直接获取姓名和手机号等等一系列常用数据。 Phone.CONTENT_URI已经将常用的几个表(raw contact co原创 2016-12-17 19:10:43 · 676 阅读 · 0 评论 -
Android-易错点归纳
1.在Service中启动Activity的问题在Service中启动startActivity会出现异常: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activitycontext requires the FLAG_ACTIVITY_NEW_TASK flag// 1.在S原创 2017-09-21 00:13:02 · 408 阅读 · 0 评论 -
Android-低功耗蓝牙(BLE)-客户端(主机/中心设备)和服务端(从机/外围设备)
参考: https://developer.android.com/guide/topics/connectivity/bluetooth-le http://a1anwang.com/post-47.html一.Android 低功耗蓝牙(BLE)的API简介从Android 4.3(API 18)才支持低功耗蓝牙(Bluetooth Low Energy, BLE)的核心功能,...原创 2018-06-10 19:32:52 · 13775 阅读 · 10 评论 -
Android-经典蓝牙(BT)-建立长连接传输短消息和文件
参考: https://developer.android.com/guide/topics/connectivity/bluetooth一.蓝牙版本介绍蓝牙有两种模块: 经典蓝牙(Classic Bluetooth, 简称BT)、低功耗蓝牙(Bluetooth Low Energy, 简称BLE)经典蓝牙: 蓝牙4.0以下都是&amp;amp;amp;amp;amp;amp;quot;经典蓝牙&amp;amp;amp;amp;amp;amp;quot;, 功耗原创 2018-05-19 23:55:12 · 22189 阅读 · 9 评论 -
Android-Accessibility(辅助功能/无障碍,自动安装APP)
参考: http://www.infoq.com/cn/articles/android-accessibility-installing https://developer.android.com/guide/topics/ui/accessibility/services https://developer.android.com/training/accessibility/servi...原创 2018-05-09 23:56:51 · 9253 阅读 · 1 评论 -
Android-ContentResolver取巧执行原生SQL语句(rawQuery/execSQL)
一.困境众所周知ContentProvider没有执行原生SQL的方法,只有增删改查四个固定方法和固定参数,因此ContentResolver也只有四个固定方法与之对应。现在需求是要把某个app的数据库迁移到另一个app,然后通过ContentProvider共享访问,这就非常麻烦了,原来的项目所有SQL语句都要重新拆开改写成ContentResolver的四个固定方法...非常浪费时...原创 2018-04-25 00:05:19 · 1758 阅读 · 0 评论 -
Android-WakeLock(唤醒锁与CPU休眠/屏幕常亮)
参考: https://blog.csdn.net/wh_19910525/article/details/8287202 http://landerlyoung.github.io/blog/2014/10/31/androidzhong-de-wakelockshi-yong/一.使用PowerManager pm = (PowerManager) context.getSys...原创 2018-05-02 17:23:33 · 13181 阅读 · 0 评论 -
Android-APK签名工具-jarsigner和apksigner
一.工具介绍jarsigner是JDK提供的针对jar包签名的通用工具,位于JDK/bin/jarsigner.exeapksigner是Google官方提供的针对Android apk签名及验证的专用工具,位于Android SDK/build-tools/SDK版本/apksigner.bat不管是apk包,还是jar包,本质都是zip格式的压缩包,所以它们的签名过程都差不多(原创 2017-02-17 19:14:32 · 46252 阅读 · 1 评论 -
Android-adb-PC端和Android无线连接调试
一.介绍adb全称为Android Debug Bridge调试桥, 使PC电脑通过USB或网络/WIFI连接Android手机!1.PC电脑端的adb程序是adb.exe(Windows系统), 位于Android SDK\platform-tools\adb.exe2.Android手机端adb程序是adbd可输入命令设置Android手机端adbd的tcp端口,让电脑通过网络/w原创 2017-06-08 14:59:59 · 3301 阅读 · 0 评论 -
Android-电池优化Doze和Standby模式-AlarmManager失效
一.电池省电优化(Doze和App Standby模式)从Android6.0开始,系统提供了两种省电功能(延长电池寿命和使用时间):Doze和App StandbyDoze和App Standby模式会延缓CPU和网络活动实现节能;1.Doze模式1.进入Doze模式 在手机未充电,完全静止且熄屏一段时间后,Android系统会自动进入Doze模式2.Doze模式...原创 2017-12-19 22:55:33 · 2171 阅读 · 0 评论 -
Android-绘图-半透明/蒙层引导用户
public class GuideView extends RelativeLayout { private final String TAG = getClass().getSimpleName(); private Context mContent; private boolean first = true; /** * targetView前缀。SH原创 2017-03-27 22:04:02 · 2526 阅读 · 1 评论 -
Android-9种通话状态(精确)
1.监听9种通话状态TelephonyManager telM = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);telM.listen(new PhoneStateListener(){ /** * 当有精确通话状态时回调 * Callback invoked when prec原创 2017-10-30 17:54:02 · 17068 阅读 · 3 评论 -
Android-服务跨进程通信(Binder/Messenger/AIDL)
官方文档中国版: https://developer.android.google.cn/guide/components/bound-services.html 谷歌2016年底为中国开发者提供中国版,方便访问!绑定服务简介Android服务与客户端相互调用(传递消息),必须创建绑定服务bindService()提供IBinder接口()!服务与客户端交互方式(传递消息)有三种:1.使用Bin原创 2017-05-25 23:57:51 · 552 阅读 · 0 评论 -
Android-adb-常用命令
一.介绍adb全称为Android Debug Bridge调试桥, 使PC电脑通过USB或网络/WIFI连接Android手机!1.PC电脑端的adb程序是adb.exe(Windows系统), 位于Android SDK\platform-tools\adb.exe2.Android手机端adb程序是adbd3.adb可直接操作android手机: 电脑和手机之间传输文件...原创 2017-05-30 23:03:20 · 1307 阅读 · 0 评论 -
(转)Android-shareUserId作用
转载: http://www.cnblogs.com/wotakuc/archive/2013/03/27/2984423.html1.shareUserId介绍:Android给每个APK进程分配一个单独的空间,manifest中的userid就是对应一个分配的Linux用户ID,并且为它创建一个沙箱,以防止影响其他应用程序(或者其他应用程序影响它)。用户ID 在应用程序安装到设备中时被分配,转载 2017-10-12 18:08:05 · 600 阅读 · 0 评论 -
Android-系统悬浮窗
WindowManager.LayoutParams params = new WindowManager.LayoutParams();params.height = WindowManager.LayoutParams.WRAP_CONTENT;params.width = WindowManager.LayoutParams.WRAP_CONTENT;params.type = Windo原创 2017-05-08 00:04:24 · 1324 阅读 · 0 评论 -
Android-设备管理器Device Administration
官方文档中国版: https://developer.android.google.cn/guide/topics/admin/device-admin.html 这个网站是谷歌2016年底为中国开发者提供中国版,方便访问!一.介绍Android设备管理API来为方便企业应用控制员工!一个APP激活了设备管理后,APP不可卸载,可锁屏,重置锁屏密码,擦除SD卡数据,恢复出厂等等,权限非常高!原创 2017-05-06 16:09:24 · 2456 阅读 · 0 评论 -
Android-发送广播结束所有Activity
//创建基类class BaseActivity extends Activity { @Override public void onResume() { super.onResume(); //注册广播 IntentFilter filter = new IntentFilter(); filte原创 2016-03-31 01:14:38 · 996 阅读 · 0 评论 -
Android-Android Studio在线搜索最新版本的依赖库
打开File–>Project Structure,点击Denpendencies标签,点击+,选Library 如下图所示,在线搜索依赖库找到最新版,Android Studio添加依赖库实在是太方便啊!原创 2016-12-17 18:48:06 · 3703 阅读 · 0 评论 -
Android-Activity和Fragment生命周期
onCreate(): Activity创建界面时,调用此方法.onStart(): Activity界面可见时,调用此方法.onResume(): 界面获得焦点可以和用户可交互时,调用此方法.onPause(): 界面可见(变为半透明或弹出对话框)但失去焦点不可以和用户交互,调用此方法.onStop(): 界面完全不可见时 ,调用此方法.onDestroy(原创 2016-03-25 17:41:19 · 530 阅读 · 0 评论 -
Android-Bitmap-压缩方法总结
Bitmap占用内存 = 长 X 宽 X 1个像素所占字节,降低任意参数就可减少Bitmap占用内存!一、质量压缩bitmap.compress(···quality···)ByteArrayOutputStream baos = new ByteArrayOutputStream();bitmap.compress(CompressFormat.JPEG, 10, baos);byte[]原创 2016-12-17 19:21:12 · 650 阅读 · 0 评论 -
26款Android反编译工具
译文: http://www.freebuf.com/sectool/111532.html 原文: https://hackerlists.com/android-reverse-engineering-tools工欲善其事必先利其器,好的Android逆向工程工具在逆向破解工程中起到事半功倍的作用。1. SMALI/BAKSMALISMALI/BAKSMALI是一个强大的apk文件编辑工具,转载 2017-02-17 19:32:03 · 4269 阅读 · 0 评论 -
Android应用资源编译打包原理
原文: http://blog.csdn.net/beyond702/article/details/49228115Android查找资源的流程 Android系统中,每一个应用程序一般都会配置很多资源,用来适配不同密度、大小和方向的屏幕,以及适配不同的国家、地区和语言等等。这些资源是在应用程序运行时自动根据设备的当前配置信息进行适配的。这也就是说,给定一个相同的资源ID,在不同的设备配置之下,转载 2017-02-15 03:30:10 · 2244 阅读 · 0 评论 -
Android图片加载框架
原文:http://www.jianshu.com/p/3ac30878c72c一、UniversalImageLoaderhttps://github.com/nostra13/Android-Universal-Image-Loader UIL可以算是老牌最火的图片加载库了,使用过这个框架的项目可以说多到教你做人。可惜的是该作者在项目中说明已经停止了对该项目的维护。这就意味着以后任何的新特性都转载 2017-02-22 01:30:20 · 314 阅读 · 0 评论 -
Android Studio和SDK缓存目录配置
详细步骤http://www.jianshu.com/p/7a58c5f154c5Android Studio和Android SDK运行后,会在系统用户目录产生几个缓存目录,我的系统用户盘产生了十几G的缓存,不得不迁移目录啊!!!缓存目录: .android Android SDK生成的AVD(Android Virtual Device Manager)即模拟器存放路径 .Andr转载 2017-01-19 06:13:26 · 3340 阅读 · 0 评论 -
Android-Listveiw的checkbox,Button焦点问题
适配器在getview()中重复使用[被移除屏幕的item,即不可见的项] 会造成被选中的checkbox重新出现,显示异常,故需要记录checkbox的状态!CheckBox抢占Item焦点,导致Item点击无效!方法一:CheckBox设置android:clickable="false" 方法二:在Item根布局或ListView布局设置android:descendantFocusa原创 2016-12-17 18:53:51 · 611 阅读 · 0 评论