NDK C++基础 四

c++可变参数

在java中,可变参数使用 int … 需要声明类型
在c++中,可变参数直接使用 … 表示,不限制类型,而是在取值时,申明类型
在c++,获取可变参数使用 va_list va_start va_arg va_end

Mehr lesen

android aidl

AIDL: Android Interface Definition Language (android 接口定义语言)
可以使用 AIDL 定于跨进程的客户端与服务端通信(IPC)的编程接口.

Mehr lesen

andorid MVC

MVC 模式:

Mehr lesen

no-title

android动画

动画分为两类,传统动画、属性动画

Mehr lesen

NDK-c++基础 三

c++语言基础,
c++中能运行c语言,但c语言不能运行c++

Mehr lesen

android SharedPreferences

原理

SharedPreferences 存取值原理,其实还是将数据写入到xml文件 以及 缓存中。
Context.getSharedPreferences 都是在ContextImpl中实现,但是在API23之前、23之后实现方式却不同

Mehr lesen

android 应用启动流程

Mehr lesen

NDK c语言基础 二

结构体

申明关键字 struct

Mehr lesen

JMM java内存模型

一、现代计算机内存模型

早期的计算机中由于CPU和内存的速度是差不多的,所以CPU是直接访问内存地址的。
而在现代计算机中,CPU指令的运行速度远远超过了内存数据的读写速度,为了降低这两者间这高达几个数量级的差距,所以在CPU与主内存之间加入了CPU高速缓存。

Mehr lesen

NDK c语言基础 (一)

c语言基础

创建C语言程序

xcode -> create new xcode project -> macos -> command line tools
在macos系统即可创建一个c语言程序

Mehr lesen

https详解

Https详解

什么是Https

在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。
为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。
SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定义在RFC 6101中,
之后IETF对SSL 3.0进行了升级,于是出现了TLS(Transport Layer Security) 1.0,定义在RFC 2246。实际上我们现在的HTTPS都是用的TLS协议,
但是由于SSL出现的时间比较早,并且依旧被现在浏览器所支持,因此SSL依然是HTTPS的代名词,但无论是TLS还是SSL都是上个世纪的事情,SSL最后一个版本是3.0,
今后TLS将会继承SSL优良血统继续为我们进行加密服务。目前TLS的版本是1.2,定义在RFC 5246中,暂时还没有被广泛的使用 ()

Mehr lesen

观察者模式

观察者模式的定义与特点:

观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。

Mehr lesen

android 屏幕渲染

渲染机制

CPU负责计算数据,把计算好数据交给GPU,
GPU会对图形数据进行渲染,渲染好后放到buffer里存起来
display负责将buffer里的数据显示在屏幕

Mehr lesen

面试题答案

1、Looper消息机制,postDelay的Message怎么处理,Looper中的消息是同步还是异步?什么情况下会有异步消息

Mehr lesen

面试题合集

android

腾讯

一面

1、Object的方法有哪些?

Mehr lesen

并发

并发

并发指单位时间的访问量
并行指同一时刻的访问量

Mehr lesen

ForkJoinTask

ForkJoinTask

ForkJoin 是采用分而治之的思维,将一个大任务分解为若干个相互独立的子任务(异步),
达到提高运算效率。
我们做一个简单的运算 计算1-100000的累加

Mehr lesen

android ViewPager/ViewPager2解析

Mehr lesen

android RecyclerView解析

Mehr lesen

android ListView解析

ListView解析

首先是简单使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class ListViewActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_list_view)
var list = arrayListOf(Person("novia", 24), Person("justin", 29), Person("doudou", 1))
var adapter = MyListAdapter(list, this)
listView.adapter = adapter
}

class MyListAdapter(var list: ArrayList<Person>, var context: Context) : BaseAdapter() {
override fun getCount(): Int {
return list.size
}

override fun getItem(position: Int): Person {
return list.get(position);
}

override fun getItemId(position: Int): Long {
return list.get(position).hashCode().toLong()
}

override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
var view = LayoutInflater.from(context).inflate(R.layout.item_listview, parent, false)
view.findViewById<TextView>(R.id.item_name).setText(getItem(position).name)
view.findViewById<TextView>(R.id.item_age).setText("" + getItem(position).age + "岁")
return view;
}
}

data class Person(var name: String, var age: Int)
}

Mehr lesen