- 博客(68)
- 资源 (11)
- 收藏
- 关注
原创 [android]_[mac下配置adb]
mac下配置adb环境今天在mac下配置android开发环境,安装完android studio和SDK后自然想到需要配置adb命令,但是mac下还是第一次弄,网上查了一堆资料,基本都是用brew命令安装SDK,然后再配置adb,实际上android studio已经安装了SDK工具,只需要作配置操作。具体步骤1.确认SDK路径,直接在android studio上面Setting-...
2018-07-11 16:29:23
609
原创 [android]_[通知]
通知通知是Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。通知的基本用法首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()方法获取到。getSystemService()方法接收一个字符串参数用于确定获取系统的哪个服务...
2018-04-14 09:44:41
354
原创 [android]_[数据存储方案]
数据存储方案文件存储Context类中提供了一个openFileOutput()方法,可以用于将数据存储到指定的文件中。这个方法接收两个参数,第一个参数是文件名,在文件创建的时候使用的就是这个名称,注意这里的文件名不可以包含路径,因为所有的文件都是默认存储到/data/data//files/目录下的。第二个参数是文件的操作模式,主要有两种模式可选,MODE_PRIVATE和MODE_...
2018-04-14 09:42:24
282
原创 [android]_[contentProvider]
内容提供者(Content Provider)内容提供者主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。目前,使用内容提供器是Android实现跨进程共享数据的标准方式。运行时权限Android开发团队在6.0系统中加入了运行时权限功能。也就是说,用户不需要在安装软件的时候一次性授权所有申请的...
2018-04-14 09:40:06
351
原创 [android]_[广播接收器]
广播接收器(Broadcast Receiver)广播接收器分为动态注册和静态注册。动态注册动态注册代码如下:public class MainActivity extends AppCompatActivity { private IntentFilter intentFilter; private NetworkChangeReceiver net...
2018-04-14 09:36:22
206
原创 [android]_[Activity进阶]
onSaveInstanceState()方法的使用onSaveInstanceState()回调方法,这个方法可以保证在活动被回收之前一定会被调用,因此我们可以通过这个方法来解决活动被回收时临时数据得不到保存的问题。onSaveInstanceState()方法会携带一个额Bundle类型的参数,Bundle提供了一系列的方法用于保存数据,比如可以使用putString()方法保存字符串...
2018-04-14 09:27:21
209
原创 [Cocoa]_[Plug-in]
Plug-inPlug-in即插件,一种扩展程序新特性而不需要改变主程序代码的方式。创建Plug-in结构创建plug-in的三种方式:Plug-ins 实现一个正式协议Plug-ins 从一个非正式协议实现一些方法Plug-ins 继承一个抽象类或者具体基础类发布一个正式Plug-ins协议如果要使用自己声明的插件协议,只需要在头文件种声明协议即可。如下列:/* MyGreatIma
2017-01-11 10:59:17
696
原创 [Android]_[RxJava的基本使用]
RxJavaRxJava是什么RxJava 在 GitHub 主页上的自我介绍是 “a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)。这就是 RxJava ,概括
2017-01-03 18:15:30
482
原创 [java]_[异常处理]
java 异常处理java的异常处理很常见,看看异常处理的结构图: 在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出)。Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性。Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的
2016-12-04 21:59:26
365
原创 [Java]_[线程同步]
Java 线程同步线程同步是防止多个线程访问同一数据源的时候造成数据破坏,如下所示: Bank.java:public class Bank { private int count =0;//账户余额 //存钱 public void addMoney(int money){ count +=money; System.out.println(S
2016-11-28 00:49:35
340
原创 [Java1.8]_[Built-in Functional Interfaces]
Built-in Functional InterfacesBuilt-in Functional Interfaces就是几种实用的函数式接口,这里介绍几种实用的几种函数式接口,Lambda。PredicatesPredicates是一个判断函数式接口,示例如下;Predicate<String> isALongWord = new Predicate<String>() { @Overr
2016-11-13 23:38:37
446
原创 [Java1.8]_[Stream]
Java 8 Stream教程Stream不同于之前的I/O流,而是Java 8引入的函数式编程。函数式编程简单说,”函数式编程”是一种”编程范式”(programming paradigm),也就是如何编写程序的方法论。 它属于”结构化编程”的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。Stream 简单例子用一个遍历数组的例子看看Stream的作用。传统写法List<String>
2016-11-07 00:51:24
1130
原创 [android]_[adb启动服务]
本文介绍如何直接在adb中启动服务(无需手动打开app)。一、创建服务类首先创建一个服务类并在启动的时候打印内容到Log方便观察,代码如下:public class MyService extends Service { public MyService() { } @Override public IBinder onBind(Intent intent) {
2016-10-31 10:46:36
2461
原创 [Java]_[JDK1.8新特性]
本文列举Java1.8的新特性,主要是参考网上别的博客和看官方文档总结。接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:interface Formula { double calculate(int a); default double sqrt(int a) { return
2016-10-30 23:58:11
543
原创 [Android studio]_[批处理一键编译生成APK]
批处理一键编译生成APK该批处理仅限android studio项目可以使用,因为这是基于项目中的gradlew.bat来完成的,而且是生成release版本。编译生成release版本 打开如图app模块的build.gradle文件,加入签名,如下: 设置签名别名、密码、key文件位置等。批处理生成release版本APK在项目的根目录中通过批处理运行这个文件: 在批处理中写 gr
2016-10-09 16:26:00
2973
原创 [android studio]_[单元测试]
android studio 单元测试android studio新建项目会自动创建一个单元测试目录,如下图: 里面代码如下:package com.example.xx.myapplication;import android.content.Context;import android.support.test.InstrumentationRegistry;import androi
2016-09-30 17:14:02
699
原创 Git的基本使用
Git的基本使用Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。安装linux或mac os:sudo apt-get install git-corewindows:http://msysgit.github.io/使用windows版本的git是有Git gui和Git bash两种方式使用,这里只介绍Git bash的使用方式,因为这种方式在其它两个操作系统都
2016-09-07 00:01:22
681
原创 [Android]_[注解库butterknife的基本使用]
butterknife注解库众所周知,传统安卓开发中都是通过findViewById()这个函数来获取xml中控件的实例进而改变控件或添加点击事件,但是在较多控件的情况下这项工具很繁琐,所以butterknife应运而生,极大简化程序员的工作,是一个偷懒的好工具。android studio下配置步骤安装ButterKnife插件File –> Settings –> Plugins –> Bro
2016-07-03 22:52:22
1111
原创 [androiod]_[MVP框架]
[androiod]_[MVP框架]对比MVC和MVPMVCMVC,Model View Controller,是软件架构中最常见的一种框架,简单来说就是通过controller的控制去操作model层的数据,并且返回给view层展示,具体见下图当用户出发事件的时候,view层会发送指令到controller层,接着controller去通知model层更新数据,model层更新完数据以后直接显示在
2016-06-19 23:26:46
671
原创 [androiod]_[Service基本使用]
Service是Android中四大组件之一,在Android开发中起到非常重要的作用,先来看一下官方对Service的定义:Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件。其他应用组件能够启动Service,并且当用户切换到另外的应用场景,Service将持续在后台运行。另外,一个组件能够绑定到一个service与之交互(IPC机制),例如,一个servi
2016-06-11 22:41:26
625
原创 [android]_[webView]
webView控件式用来显示网页的,用法比较简单。activity_main.xml:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" >
2016-02-29 00:02:38
401
原创 [Android]_[Service]
服务(Service)是Android 中实现程序后台运行的解决方案,它非常适合用于去执行那些不需要和用户交互而且还要求长期运行的任务。服务的运行不依赖于任何用户界面,即使当程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。不过需要注意的是,服务并不是运行在一个独立的进程当中的,而是依赖于创建服务时所在的应用程序进程。当某个应用程序进程被杀掉时,所有依赖于该进程的服务
2016-02-28 23:49:18
379
原创 [java]_[线程池的使用]
Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
2016-02-21 23:22:00
370
原创 [android]_[Notication的使用]
相信多数人都知道安卓上的通知,这原本是安卓系统的一大特点,早期iOS和wp还没有。一、创建通知的步骤:1.创建NotificationManager2.创建Notification3.调用NotificationManager的方法notify()产生通知代码如下:NotificationManager manager = (NotificationManager) get
2016-02-21 22:46:45
1040
原创 [android]_[ImageView点击变暗]
ImageView设置选中变暗效果。public final float[] BT_SELECTED = new float[] {1,0,0,0,99,0,1,0,0,99,0,0,1,0,99,0,0,0,1,0}; public final float[] BT_NOT_SELECTED = new float[] {1,0,0,0,0,0,1,0,0,0,0,0,1,0,0
2016-02-01 01:55:18
781
原创 [android]_[Async异步任务使用]
android提供了一套专门用于异步处理的类。即:AynsTask类。使用这个类可以为耗时程序开辟一个新线程进行处理,处理完时返回。asysTask类主要用到的几个内部回调函数有: doInBackGround()onPreExecute()onPostExecute()onProgressUpdate()执行顺序如下图:publi
2016-02-01 01:49:19
412
原创 [android]_[handler的简单使用]
因为android是不允许在子线程中更新界面,所以经常要用到handler来更新界面。先建一个handler:Handler myHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) {
2016-02-01 01:15:53
269
原创 [java]_[Collections.sort()实现List排序]
List list = new ArrayList();list.add("刘媛媛");list.add("王硕");list.add("李明");list.add("刘迪");list.add("刘布");//升序Collections.sort(list,Collator.getInstance(java.util.Locale.CHINA));//注意:是根据的汉字的拼音的字
2016-02-01 00:57:12
502
原创 [android]_[ViewGroup的基本使用]
1.自定义类继承ViewGroup,必须定义构造函数、定制控件位置函数(onLayout())、测量函数(onMeasure())。protected void onLayout(boolean changed, int left, int top, int right, int bottom) { int mViewGroupWidth = getMeasuredWidth
2015-12-31 23:23:37
459
原创 [android]_[绘图]
android开发中经常要自定义view画出各种图案,这里简单说明怎么绘制常用图形。1.首先创建一个类DrawView继承View并重写构造函数和OnDraw(),主要是在onDraw中绘制各种图形,代码例子如下:public class DrawView extends View { public DrawView(Context context) { super(context
2015-12-28 23:54:21
352
原创 [android]_[ListView的基本使用]
ListView 绝对可以称得上是Android 中最常用的控件之一,几乎所有的应用程序都会用到它。由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有大量的数据需要展示的时候,就可以借助ListView 来实现。ListView 允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据则会滚动出屏幕。相信你其实每天都在使用这个控件,比如查看手机联
2015-12-28 01:29:30
658
原创 [android]_[四种基本布局]
1.LinearLayoutLinearLayout 又称作线性布局,是一种非常常用的布局。正如它名字所描述的一样,这个布局会将它所包含的控件在线性方向上依次排列。相信你之前也已经注意到了,我们在上一节中学习控件用法时,所有的控件就都是放在LinearLayout 布局里的,因此上一节中的控件也确实是在垂直方向上线性排列的。1.1 垂直排列设置布局的orientation="v
2015-12-28 00:58:57
595
原创 [Cocoa]_[多语言翻译]
Cocoa内置多语言翻译,相对其它平台要方便得多。1.首先创建一个strings文件,命名为Localizable.strings.2.选中新建的Localizable.strings文件,在窗口右边点击Localize...,弹出的窗口点击"Localize"按钮确认。如下图:3.在如下位置添加其它语言,我们这里只添加简体中文演示4.两个string文件要像如
2015-11-30 22:17:52
737
原创 [Android]_[ACtivity生命周期]
android的activity生命周期如下图所示:1. 开始Activity:在这个阶段依次执行3个生命周期方法:onCreate()、onStart()和onResume()。 2. Activity失去焦点:如果在Activity获得焦点的情况下进入其他的Activity,这时当前的Activity会失去焦点。在这一阶段,会依次执行onPause()和onStop()
2015-11-23 00:20:14
469
原创 [Android]_[常用ADB命令]
ADB是Android手机和PC之间交互的桥梁,可以通过ADB命令在PC端访问或修改手机的文件,下面列出ADB的常用命令。1.获取序列号:adb get-serialno2.查看链接计算机的设备:adb devices3.重启机器:adb reboot4.进入刷机模式: adb reboot bootloader5.进入
2015-11-23 00:04:09
455
原创 [Android]_[程序获取root权限]
要让程序获取root权限,前提是手机已经root了,一般情况下root过的手机都会有一个权限管理应用,像superSU、rootking等,当执行下列代码就会触发权限管理工具弹出提示框询问用户是否允许改应用获取root权限,获取root权限的应用才可以对系统文件进行修改。获取root权限代码 public static boolean RootCommand(String comman
2015-11-22 23:40:23
486
原创 [Cocoa]_[配置gtest环境]
Google的开源C++单元测试框架Google Test,简称gtest,可以用于多个平台,包括xcode,今天就讲讲怎么在xcode下搭建test环境。1.提供gest1.7下载地址:http://download.youkuaiyun.com/detail/mister_exia/76089472.下载并解压,打开../gtest-1.7.0/xcode/gtest.xcodeproj,编译后找
2015-10-25 23:36:17
852
原创 [Cocoa]_[NSNotificationCenter]_[基本使用]
NSNotificationCenter即消息中心,主要用于不同类间的通信,一个消息中心对象用于在一个程序中广播消息,消息中心可以看成是一个程序中的通告板。 1.NSNotificationCenter注册通知有两种方法,分别是addObserver:selector:name:object:和addObserverForName:object:queue:usingBlock:,两种方
2015-10-25 22:56:19
511
原创 [Cocoa]_[NSTableView]_[添加复选框]
要想给tableview添加复选框就要重定义那一列的cell,通过重写绘图事件和点击事件来实现。1.重定义cellYepCheckImageCell.h#import @interface YepCheckImageCell : NSButtonCell{ BOOL isChecked; NSImage* checkImage[2];}@property
2015-10-15 17:02:35
2317
原创 [Cocoa]_[NSTableView]_[基本使用]
NSTableView是NSOutlineView的父类,编码比NSOutlineView要简单一些,大体上是差不多的。 1.首先拖动NSTableView然后绑定dataSource和delegate. 2.自定义一个类来保存每一行的数据。SimpleData.h#import @interface SimpleData : NSObject{
2015-10-15 13:47:40
8278
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人