程序亦非猿

菩提本无树,程序亦非猿。


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 友链

  • 搜索

设计模式前传之面向对象基础

发表于 2015-09-06 | 更新于: 2021-02-08 | 分类于 Architecture , 设计模式 | 阅读次数:
字数统计: 705 | 阅读时长 ≈ 2 分钟

前言

PS:本人边学变写,由于本人能力有限,所以在理解、解释等各方面一定会有所欠缺,如果有什么不对或者不足之处,非常欢迎各位在各种渠道批评指点!
另外设计模式系列会跟随自己的能力or理解or别人的指导不定期更新

面向对象(Object-Oriented,OO)是基础中的基础,亦是重中之重.
面向对象学得好,才能顺利地往设计模式的方向继续前行.

JAVA面向对象最重要的特征就是:封装,继承,多态(所谓的三大特征)。
就个人体会来简单讲一下.

封装

封装通过合并特征和行为来创建新的数据类型.

个人体会:

优点

封装有个好处是实现隐藏:
通过将细节私有化把接口和实现分离开来.

个人觉得封装的主要意义有:

  1. 保护私有数据,只提供方法给外部调用
  2. 抽象出方法,做成util,统一处理,复用,提高效率

缺点

记住不要过度封装!

阅读全文 »

NDK初探

发表于 2015-09-02 | 更新于: 2019-02-12 | 分类于 Android | 阅读次数:
字数统计: 164 | 阅读时长 ≈ 1 分钟

前言

原本老大让我了解一下NDK的,于是有了本笔记.
Ps:本人开发环境是Mac,工具是AS.

下载NDK

NDK下载

我新建了个ndk目录,把下载的文件放了进去.

接着进入该目录,执行命令:

1
2
chmod a+x android-ndk-r10c-darwin-x86_64.bin
./android-ndk-r10c-darwin-x86_64.bin #需要等待一会

配置环境变量

1
open ~/.zshrc

把/Users/alanchen/Downloads/ndk/android-ndk-r10e 加进去(这个是我自己的)

1
source ~/.zshrc   #使得配置生效

输入以下命令,看看是否成功:

1
ndk-build

ndk-build

阅读全文 »

反编译工具Jadx

发表于 2015-09-01 | 更新于: 2019-02-12 | 分类于 Tools | 阅读次数:
字数统计: 191 | 阅读时长 ≈ 1 分钟

Jadx

Android开发(/学习)有时候需要用到反编译工具,Window上有很多工具,而Mac上则不多,这里稍微介绍一下Mac上可用的反编译工具Jadx.

准备

clone 仓库,编译

1
2
3
4
mkdir jadx
git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist #这个需要等一下

开始反编译

等完毕后,可以开始了,我就介绍个最简单最常用的用法

  1. 把apk改成zip
  2. 解压zip获取class.dex文件
  3. 将class.dex文件放到jadx目录下
1
2
3
4
cd build/jadx/
bin/jadx -d out class.dex # 反编译后放入out文件夹下(如果out不存在它会自动创建)
#or
bin/jadx-gui class.dex # 会反编译,并且使用gui打开

效果图

OK,就这样,后续还可以配置环境变量,更加方便.

使用Lambda在Android中的替代匿名类

发表于 2015-09-01 | 更新于: 2019-02-12 | 分类于 Java | 阅读次数:
字数统计: 490 | 阅读时长 ≈ 1 分钟

Lambda

Lambda是第十一个希腊字母,大写Λ,小写λ,额,跑题了…
Lambda表达式 是Java8的新特性之一:

  1. Lambda表达式
  2. 函数式接口
  3. 流API
  4. 默认方法
  5. 新的Date 和 Time API

Lambda表达式取代了匿名类,取消了模板,允许用函数式风格编写代码。

由于最近接触了RxJava,遇到了Lambda,立马就喜欢上了~所以就学习了一下.

本文主要介绍一下Lambda在Android中替代匿名类的部分使用场景.

阅读全文 »

Linux之常用文件操作命令

发表于 2015-09-01 | 更新于: 2019-02-12 | 阅读次数:
字数统计: 823 | 阅读时长 ≈ 3 分钟

前言

本文记录整理了Linux较为常用的处理文件目录的命令.

文件处理命令

Linux 下一切皆文件

新建文件:touch

touch [选项]… [文件名]…

一般就 touch test.md adf.md 这样就行

输出命令: echo

echo [选项]... string 在屏幕打印,不知什么用- -

echo string > filename  覆盖写入string+换行
echo string >> filename 追加内容

显示文件内容: cat

cat filename

其实cat还有其他作用,只是常用就这个

阅读全文 »

Linux之文件搜索命令

发表于 2015-08-30 | 更新于: 2019-02-12 | 阅读次数:
字数统计: 947 | 阅读时长 ≈ 3 分钟

文件搜索命令locate

在指定的数据库按文件名字搜索.

优点:

  1. 搜索速度快(在后台数据库中按文件名搜索)

数据库: /var/lib/mlocate

1
locate filename

第一次执行的时候会出现:

1
2
3
4
5
6
7
WARNING: The locate database (/var/db/locate.database) does not exist.
To create the database, run the following command:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

Please be aware that the database can take some time to generate; once
the database has been created, this message will no longer appear.

缺点:

  1. 不能搜所刚创建的文件(数据库默认一天一更新)
  2. 只能按文件名字搜索

那么我非要立马更新数据库呢?

阅读全文 »

Linux之链接命令

发表于 2015-08-30 | 更新于: 2019-02-12 | 阅读次数:
字数统计: 740 | 阅读时长 ≈ 2 分钟

链接命令: ln

ln

链接分两种:

  1. 软链接 -s (soft)
  2. 硬链接

硬链接

特征:
硬链接

硬链接练习

请无视中间的vi命令,因为还没有学习vim

对于硬链接自己的理解备忘:

  1. 相同的硬连接文件指向同一片地址(inode一样),查询的block是一样的
  2. 修改其中一个文件,其实改的是地址所对应的内容,所以所有指向这地址的文件都”一起修改了”
  3. 删除其中某个不会影响其他文件的使用,因为地址的内存依然在
  4. 建立硬链接影响文件被引用的计数(+1)(该计数就是ll看到的 文件权限命令后的那个数字)
  5. 为什么会有引用计数呢?个人觉得正因为硬链接的inode跟block一样,所以可以通过计数来判断block是否还有引用,来决定是否删除数据(感觉像是gc,没有强引用了就代表可以回收了)
  6. 不推荐硬链接
阅读全文 »

Linux之命令基础

发表于 2015-08-23 | 更新于: 2019-02-12 | 阅读次数:
字数统计: 636 | 阅读时长 ≈ 2 分钟

Linux

1991 作者–Linus Torvalds Git也同样出自他手

虽然自己只是个android新手,但是个人觉得掌握一些linux命令还是很有必要的,这个是自己看Linux达人养成计划 I部分章节的学习笔记
,外加自己其他所学整理.
另外由于自己用的是Mac,所以实际跟Linux有差别,但是还好不太影响~由于本人也是刚学习,所以可能会出现错误,还望各位指正!

本人按照自己学习Android的需求学习的,所以东西可能不多,但是够用

命令基本格式

命令提示符

[root@localhost ~]#

符号 意义
root 用户
\ 根目录
~ 用户的home目录
# 超级用户的提示符
$ 普通用户的提示符

命令格式

绝大多数命令支持以下格式
命令 [选项] [参数]

PS: 个别命令使用不遵循此格式,当有多个选项时,可以写在一起简化选项与完整选项 -a等于--all

举个栗子

  1. 查询目录中内容: ls

ls [选项] [文件或目录]

常用选项:

  1. -a 显示所有文件,包括隐藏文件(如’.’开头的文件,系统文件)
  2. -l 显示详细信息 (long list)
  3. -d 查看目录本身的属性,而不是该目录下的文件
  4. -h 人性化显示文件大小
  5. -i 显示inode (查看id号)

文件或目录:
指定查询某个目录
如果不填写,则默认当前目录

阅读全文 »

AndroidStudio必备插件

发表于 2015-08-21 | 更新于: 2019-02-12 | 分类于 Tools | 阅读次数:
字数统计: 84 | 阅读时长 ≈ 1 分钟

记录一下好用的AndroidStudio插件,欢迎推荐!~

  1. ButterKnife Zelezny

  2. Drawable Importer

  3. File Grouping

  4. Eventbus Intellij Plugin

  5. Layout ID Converter

  6. Selector Generate

  7. Gson Format

  8. Lifecycle Sorter
    Sorts the lifecycle methods of an Activity or a Fragment in the order that they are called in your application.

阅读全文 »

Mac必备神器之Go2Shell

发表于 2015-08-19 | 更新于: 2019-02-12 | 分类于 Tools | 阅读次数:
字数统计: 272 | 阅读时长 ≈ 1 分钟

Go2Shell

一个可以快速在当前目录打开Shell的工具,小巧,非常好用!

但是它默认打开是系统的iterm,而我希望它打开iTerm2!~

设置默认iterm

而Go2Shell默认没有设置界面,需要用命令行打开(隐藏得真深啊!)
在Shell中输入:

1
open -a Go2Shell --args config

会打开设置界面

设置界面

选择iTerm2 ,保存并退出即可!~

阅读全文 »
1…131415
程序亦非猿

程序亦非猿

144 日志
11 分类
101 标签
GitHub
0%
© 2015 — 2021 程序亦非猿 | Site words total count: 122.7k
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4
人次 次