출처: gnu doc for Makefile

 

makefile에서 다른 makefile을 include하고자 할 때는 다음과 같이 한다.

include filename

 

위와 같이 하면, 현재 makefile을 읽는 걸 중단하고, 상기의 filename에 대한 읽기를 진행한다. 포함된 file에 대한 읽기가 끝나면 다시 현재 makefile에 대해 진행한다. 

만약 상기 파일이 /로 시작하지 않거나 현재 디렉터리에 존재하지 않다면 다음과 같은 순서로 찾는다.

 

1. '-I' 혹은 '--include_dir'로 정의된 디렉터리

2. prefix/include('/usr/local/include') '/usr/gnu/include', '/usr/local/include', '/usr/include' 순서로 찾는다.

 

만약 위와 같이 해도 못 찾는다고 해서, 곧바로 에러를 내지는 않는다.(경고 메세지는 나온다.)  우선 현재 makefile에 대한 모든 진행을 맞추고, make는 현재 out-of-date 혹은 아직 존재하지 않는 파일에 대해 진행을 시도한다.  여기서도 만약 실패한다면, 에러가 난다.

 

만약 이런 에러를 피해, 있으면 좋구 없으면 에러내지 말라 라고 하고 싶다면, '-include'를 사용하라.

 

한개 이상의 makefile을 포함하고자 할 때는 다음과 같은 형식으로도 가능하다.

include foo *.mk $(bar)

 

보통 언제 include를 쓰면 좋으냐면,

1. 여러 directory에 makefile들이 존재하고, 공용 variable에 대한 사용을 하고자 할 때

2. 소스 파일로부터의 dependencies를 자동으로 생성코자 할 때.

 

할 때 사용하면 좋다.

 

Posted by code cat
안드로이드/포팅2013. 12. 29. 18:24

 통신사를 끼고 해보진 않아서 생략되는 부분도 있지만, 달리 추가되는 부분도 있다.

그래도 나름 잘 정리해 놓은거 같다.

 

 

'안드로이드 > 포팅' 카테고리의 다른 글

skipping insecure file  (0) 2014.04.13
Android Exploit  (0) 2014.04.01
안드로이드 adb 명령어 리스트  (0) 2013.12.01
안드로이드 settings 데이터 알아보기  (0) 2013.12.01
안드로이드 system 파티션 remount  (0) 2013.11.28
Posted by code cat
프로그래밍2013. 12. 24. 21:08

최신 버전은 아니지만 나름 재밌게 읽고 있는 중

Posted by code cat
리눅스/커널2013. 12. 11. 16:00

framebuffer 사이즈를 구하는 방법은 다음과 같다.


framebuffer size = x resolution * y resolution * color depth


즉 1080p + 4 color depth이면 1920 * 1080 * 4가 된다.

'리눅스 > 커널' 카테고리의 다른 글

early_param에 대해  (0) 2014.03.31
/dev/tty 와 /dev/console의 차이점  (0) 2014.02.05
[커널] FB 문서  (0) 2013.12.09
[안드로이드][커널]Unknown symbol _GLOBAL_OFFSET_TABLE_  (0) 2013.08.09
Kernel Oops의 Taint 종류  (0) 2013.07.25
Posted by code cat
리눅스/커널2013. 12. 9. 08:29
			The Frame Buffer Device
			-----------------------

Maintained by Geert Uytterhoeven <geert@linux-m68k.org>
Last revised: May 10, 2001


0. Introduction
---------------

The frame buffer device provides an abstraction for the graphics hardware. It
represents the frame buffer of some video hardware and allows application
software to access the graphics hardware through a well-defined interface, so
the software doesn't need to know anything about the low-level (hardware
register) stuff.

The device is accessed through special device nodes, usually located in the
/dev directory, i.e. /dev/fb*.


1. User's View of /dev/fb*
--------------------------

From the user's point of view, the frame buffer device looks just like any
other device in /dev. It's a character device using major 29; the minor
specifies the frame buffer number.

By convention, the following device nodes are used (numbers indicate the device
minor numbers):

      0 = /dev/fb0	First frame buffer
      1 = /dev/fb1	Second frame buffer
	  ...
     31 = /dev/fb31	32nd frame buffer

For backwards compatibility, you may want to create the following symbolic
links:

    /dev/fb0current -> fb0
    /dev/fb1current -> fb1

and so on...

The frame buffer devices are also `normal' memory devices, this means, you can
read and write their contents. You can, for example, make a screen snapshot by

  cp /dev/fb0 myfile

There also can be more than one frame buffer at a time, e.g. if you have a
graphics card in addition to the built-in hardware. The corresponding frame
buffer devices (/dev/fb0 and /dev/fb1 etc.) work independently.

Application software that uses the frame buffer device (e.g. the X server) will
use /dev/fb0 by default (older software uses /dev/fb0current). You can specify
an alternative frame buffer device by setting the environment variable
$FRAMEBUFFER to the path name of a frame buffer device, e.g. (for sh/bash
users):

    export FRAMEBUFFER=/dev/fb1

or (for csh users):

    setenv FRAMEBUFFER /dev/fb1

After this the X server will use the second frame buffer.


2. Programmer's View of /dev/fb*
--------------------------------

As you already know, a frame buffer device is a memory device like /dev/mem and
it has the same features. You can read it, write it, seek to some location in
it and mmap() it (the main usage). The difference is just that the memory that
appears in the special file is not the whole memory, but the frame buffer of
some video hardware.

/dev/fb* also allows several ioctls on it, by which lots of information about
the hardware can be queried and set. The color map handling works via ioctls,
too. Look into <linux/fb.h> for more information on what ioctls exist and on
which data structures they work. Here's just a brief overview:

  - You can request unchangeable information about the hardware, like name,
    organization of the screen memory (planes, packed pixels, ...) and address
    and length of the screen memory.

  - You can request and change variable information about the hardware, like
    visible and virtual geometry, depth, color map format, timing, and so on.
    If you try to change that information, the driver maybe will round up some
    values to meet the hardware's capabilities (or return EINVAL if that isn't
    possible).

  - You can get and set parts of the color map. Communication is done with 16
    bits per color part (red, green, blue, transparency) to support all 
    existing hardware. The driver does all the computations needed to apply 
    it to the hardware (round it down to less bits, maybe throw away 
    transparency).

All this hardware abstraction makes the implementation of application programs
easier and more portable. E.g. the X server works completely on /dev/fb* and
thus doesn't need to know, for example, how the color registers of the concrete
hardware are organized. XF68_FBDev is a general X server for bitmapped,
unaccelerated video hardware. The only thing that has to be built into
application programs is the screen organization (bitplanes or chunky pixels
etc.), because it works on the frame buffer image data directly.

For the future it is planned that frame buffer drivers for graphics cards and
the like can be implemented as kernel modules that are loaded at runtime. Such
a driver just has to call register_framebuffer() and supply some functions.
Writing and distributing such drivers independently from the kernel will save
much trouble...


3. Frame Buffer Resolution Maintenance
--------------------------------------

Frame buffer resolutions are maintained using the utility `fbset'. It can
change the video mode properties of a frame buffer device. Its main usage is
to change the current video mode, e.g. during boot up in one of your /etc/rc.*
or /etc/init.d/* files.

Fbset uses a video mode database stored in a configuration file, so you can
easily add your own modes and refer to them with a simple identifier.


4. The X Server
---------------

The X server (XF68_FBDev) is the most notable application program for the frame
buffer device. Starting with XFree86 release 3.2, the X server is part of
XFree86 and has 2 modes:

  - If the `Display' subsection for the `fbdev' driver in the /etc/XF86Config
    file contains a

	Modes "default"

    line, the X server will use the scheme discussed above, i.e. it will start
    up in the resolution determined by /dev/fb0 (or $FRAMEBUFFER, if set). You
    still have to specify the color depth (using the Depth keyword) and virtual
    resolution (using the Virtual keyword) though. This is the default for the
    configuration file supplied with XFree86. It's the most simple
    configuration, but it has some limitations.

  - Therefore it's also possible to specify resolutions in the /etc/XF86Config
    file. This allows for on-the-fly resolution switching while retaining the
    same virtual desktop size. The frame buffer device that's used is still
    /dev/fb0current (or $FRAMEBUFFER), but the available resolutions are
    defined by /etc/XF86Config now. The disadvantage is that you have to
    specify the timings in a different format (but `fbset -x' may help).

To tune a video mode, you can use fbset or xvidtune. Note that xvidtune doesn't
work 100% with XF68_FBDev: the reported clock values are always incorrect.


5. Video Mode Timings
---------------------

A monitor draws an image on the screen by using an electron beam (3 electron
beams for color models, 1 electron beam for monochrome monitors). The front of
the screen is covered by a pattern of colored phosphors (pixels). If a phosphor
is hit by an electron, it emits a photon and thus becomes visible.

The electron beam draws horizontal lines (scanlines) from left to right, and
from the top to the bottom of the screen. By modifying the intensity of the
electron beam, pixels with various colors and intensities can be shown.

After each scanline the electron beam has to move back to the left side of the
screen and to the next line: this is called the horizontal retrace. After the
whole screen (frame) was painted, the beam moves back to the upper left corner:
this is called the vertical retrace. During both the horizontal and vertical
retrace, the electron beam is turned off (blanked).

The speed at which the electron beam paints the pixels is determined by the
dotclock in the graphics board. For a dotclock of e.g. 28.37516 MHz (millions
of cycles per second), each pixel is 35242 ps (picoseconds) long:

    1/(28.37516E6 Hz) = 35.242E-9 s

If the screen resolution is 640x480, it will take

    640*35.242E-9 s = 22.555E-6 s

to paint the 640 (xres) pixels on one scanline. But the horizontal retrace
also takes time (e.g. 272 `pixels'), so a full scanline takes

    (640+272)*35.242E-9 s = 32.141E-6 s

We'll say that the horizontal scanrate is about 31 kHz:

    1/(32.141E-6 s) = 31.113E3 Hz

A full screen counts 480 (yres) lines, but we have to consider the vertical
retrace too (e.g. 49 `lines'). So a full screen will take

    (480+49)*32.141E-6 s = 17.002E-3 s

The vertical scanrate is about 59 Hz:

    1/(17.002E-3 s) = 58.815 Hz

This means the screen data is refreshed about 59 times per second. To have a
stable picture without visible flicker, VESA recommends a vertical scanrate of
at least 72 Hz. But the perceived flicker is very human dependent: some people
can use 50 Hz without any trouble, while I'll notice if it's less than 80 Hz.

Since the monitor doesn't know when a new scanline starts, the graphics board
will supply a synchronization pulse (horizontal sync or hsync) for each
scanline.  Similarly it supplies a synchronization pulse (vertical sync or
vsync) for each new frame. The position of the image on the screen is
influenced by the moments at which the synchronization pulses occur.

The following picture summarizes all timings. The horizontal retrace time is
the sum of the left margin, the right margin and the hsync length, while the
vertical retrace time is the sum of the upper margin, the lower margin and the
vsync length.

  +----------+---------------------------------------------+----------+-------+
  |          |                ↑                            |          |       |
  |          |                |upper_margin                |          |       |
  |          |                ↓                            |          |       |
  +----------###############################################----------+-------+
  |          #                ↑                            #          |       |
  |          #                |                            #          |       |
  |          #                |                            #          |       |
  |          #                |                            #          |       |
  |   left   #                |                            #  right   | hsync |
  |  margin  #                |       xres                 #  margin  |  len  |
  |<-------->#<---------------+--------------------------->#<-------->|<----->|
  |          #                |                            #          |       |
  |          #                |                            #          |       |
  |          #                |                            #          |       |
  |          #                |yres                        #          |       |
  |          #                |                            #          |       |
  |          #                |                            #          |       |
  |          #                |                            #          |       |
  |          #                |                            #          |       |
  |          #                |                            #          |       |
  |          #                |                            #          |       |
  |          #                |                            #          |       |
  |          #                |                            #          |       |
  |          #                ↓                            #          |       |
  +----------###############################################----------+-------+
  |          |                ↑                            |          |       |
  |          |                |lower_margin                |          |       |
  |          |                ↓                            |          |       |
  +----------+---------------------------------------------+----------+-------+
  |          |                ↑                            |          |       |
  |          |                |vsync_len                   |          |       |
  |          |                ↓                            |          |       |
  +----------+---------------------------------------------+----------+-------+

The frame buffer device expects all horizontal timings in number of dotclocks
(in picoseconds, 1E-12 s), and vertical timings in number of scanlines.


6. Converting XFree86 timing values info frame buffer device timings
--------------------------------------------------------------------

An XFree86 mode line consists of the following fields:
 "800x600"     50      800  856  976 1040    600  637  643  666
 < name >     DCF       HR  SH1  SH2  HFL     VR  SV1  SV2  VFL

The frame buffer device uses the following fields:

  - pixclock: pixel clock in ps (pico seconds)
  - left_margin: time from sync to picture
  - right_margin: time from picture to sync
  - upper_margin: time from sync to picture
  - lower_margin: time from picture to sync
  - hsync_len: length of horizontal sync
  - vsync_len: length of vertical sync

1) Pixelclock:
   xfree: in MHz
   fb: in picoseconds (ps)

   pixclock = 1000000 / DCF

2) horizontal timings:
   left_margin = HFL - SH2
   right_margin = SH1 - HR
   hsync_len = SH2 - SH1

3) vertical timings:
   upper_margin = VFL - SV2
   lower_margin = SV1 - VR
   vsync_len = SV2 - SV1

Good examples for VESA timings can be found in the XFree86 source tree,
under "xc/programs/Xserver/hw/xfree86/doc/modeDB.txt".


7. References
-------------

For more specific information about the frame buffer device and its
applications, please refer to the Linux-fbdev website:

    http://linux-fbdev.sourceforge.net/

and to the following documentation:

  - The manual pages for fbset: fbset(8), fb.modes(5)
  - The manual pages for XFree86: XF68_FBDev(1), XF86Config(4/5)
  - The mighty kernel sources:
      o linux/drivers/video/
      o linux/include/linux/fb.h
      o linux/include/video/



8. Mailing list
---------------

There is a frame buffer device related mailing list at kernel.org:
linux-fbdev@vger.kernel.org.

Point your web browser to http://sourceforge.net/projects/linux-fbdev/ for
subscription information and archive browsing.


9. Downloading
--------------

All necessary files can be found at

    ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/680x0/

and on its mirrors.

The latest version of fbset can be found at

    http://www.linux-fbdev.org/ 

  
10. Credits                                                       
----------                                                       
                
This readme was written by Geert Uytterhoeven, partly based on the original
`X-framebuffer.README' by Roman Hodek and Martin Schaller. Section 6 was
provided by Frank Neumann.

The frame buffer device abstraction was designed by Martin Schaller.


Posted by code cat
프로그래밍2013. 12. 5. 09:24

코드 관련 체크툴을 검색하다가 cpplint라는 google coding style 체크를 해 주는 툴을 보게 되어 사용해 보았다.


사용법은 간단하여 다음과 같이 하면 된다.


$>python cpplint.py <directory>/example.cpp


시험삼아 안드로이드의 프레임 워크 쪽 수정한 부분에 대해서 돌려봤는데...


이건 내가 수정한 거보다 구글러 코드가 더 문제로 많이 잡혀서... 난감하네.




'프로그래밍' 카테고리의 다른 글

[Ruby] gem install 시에 에러  (0) 2014.09.06
[읽는중] 점프투파이썬  (0) 2013.12.24
db8 schema  (0) 2013.12.03
[일반][프로그래밍]비대칭경계  (0) 2013.10.26
pair coding 를 하기 위한 자세  (0) 2012.04.27
Posted by code cat
책/IT2013. 12. 3. 20:48

 

 

 

이미지 출처: http://www.acornpub.co.kr/book/ghost-in-the-wires

 

번역판이 아닌 영어판으로 읽었는데, 꽤 재밌었다.  아마 번역판도 나름 잘 번역했다면 읽어보길 권한다.

크게 기술적인 면에 대해서 다루지 않아서 초보자가 읽어도 문제는 없을 것이겠지만, 뭐 알고 보면 더 재밌을 거 같다.

 

솔직히 조금 더 기술적인 면을 다뤘으면 했는데, 케빈 자체도 책을 쓰면서 독자를 배려해서 얼마나 기술적인 면에 대해서 서술할 건지에 대해서 고민했다고 하니, 재미와 다큐 사이에 적절하게 합의 본거 같다.

' > IT' 카테고리의 다른 글

GoF 디자인 패턴! 이렇게 활용한다.  (0) 2013.03.24
[사고싶은책]64비트 멀티코어OS원리와 구조  (0) 2011.06.27
Posted by code cat
XX XX 프로젝트2013. 12. 3. 20:38

음 중간 중간 깨지는게 있네...

 

그래도 너무 좁아서 늘릴 필요는 있으니까.

Posted by code cat
프로그래밍2013. 12. 3. 20:23


출처:https://developer.palm.com/content/api/reference/data-types/db8.html

db8 Data Types

 Date Type

Description 

Ref'd by 

Wrapper APIs 

Service APIs 
BatchOperation Method and parameters for operation in batch.     batch
BatchResponse Response to batch API call.     batch
CountResponse Number of objects affected by operation.   del
merge
del
merge
ErrResponse Standard error response, containing operation success or failure flag, error code and error message.   del
delKind
find
get
merge
put
putKind
reserveIds
batch
del
delKind
find
get
merge
put
putKind
reserveIds
search
watch
FindResponse Response to find operation.   find find
search
GetResponse Parameters for get objects operation response.   get get
IndexClause Used for creating indexes for kind object.   putKind
putKind
IndexPropClause Defines index property. IndexClause    
NotificationResponse Notifies caller of change in query results.   find find
search
watch
PutResponse Indicates success of operation and returns id and revfields for each object.   del
merge
put
del
merge
put
PutResult Contains id and revfield for JSON data object stored in put operation. PutResponse    
Query Defines db8 query.   del
merge
find
del
merge
find
watch
ReserveIdsResponse Contains operation success or failure flag and array of reserved db8 IDs.   reserveIds reserveIds
RevSetClause Defines a revision set for a kind. SeeUsing Revision Setsfor more information.     putKind
RevSetPropClause Defines a property in a revision set. RevSetClause    
SuccessResponse Indicates operation success or failure.   delKind
putKind
delKind
putKind
watch
WhereClause Defines SQL-like JSON where clause for query. Query    


 


BatchOperation

Method and params for batch operation.

Schema

{
   "method" : string,
   "params" : any
}

Elements

Element Required Type Description
method Yes string Operation to perform. Possible values: "del", "find", "get", "merge", or "put".
params Yes any Method parameters.


 


BatchResponse

Response to batch operation.

Schema

{
   "returnValue" : boolean,
   "responses"   : any array
}

Elements

Element Required Type Description
returnValue Yes boolean Success (true) or Failure (false).
responses Yes any array Array of responses for each of the operations in the batch.


 


CountResponse

Number of objects affected by operation.

Schema

{
   "returnValue" : boolean,
   "count"       : int
}

Elements

Element Required Type Description
returnValue Yes boolean true (success) or false (failure).
count Yes int Number of objects affected by operation.


 


ErrResponse

Standard error response, containing operation success or failure flag, error code and error message.

Schema

{
   "returnValue" : boolean,
   "errorCode"   : int,
   "errorText"   : string
}

Elements

Element Required Type Description
returnValue Yes boolean true (success) or false (failure).
errorCode Yes int Numeric error code.
errorText Yes string Error message.


 


FindResponse

Response to a find objects operation.

Schema

{
   "returnValue" : boolean,
   "results"     : any,
   "count"       : int,
   "next"        : string
}

Elements

Element Required Type Description
returnValue Yes boolean true (success) or false (failure).
results Yes any Array of db8 kind data objects. What is returned depends on the query and what is stored.
count No int Number of results that would have been returned if a limit had not been specified.
next No string Key to pass as query's "page" property when retrieving next page of results.


 


GetResponse

Parameters for get objects operation response.

Schema

{
      "returnValue" : boolean,
      "results"     : any
}

Elements

Element Required Type Description
returnValue Yes boolean true (success) or false (failure).
result Yes any object array Returns array of stored db8 data objects.


 


IndexClause

Used in the putKind call for creating kind object indexes. Note that indexes determine the type of queries your app can make. See Queries and Indexing for more information.

Set the "incDel" flag to true if you want future queries to return marked as deleted objects. Objects are not completely deleted until an administrative purge operation takes place.

Schema

{
   "name"    : string,
   "props"   : IndexPropClause,
   "incDel"  : boolean
}

Elements

Element Required Type Description
name Yes string Index name
props Yes IndexPropClause Array of properties to index together.
incDel No boolean Include deleted objects flag. Default is false.

Example

{
   "name"   : "state", 
   "props"  : [{"name": "state"}],
   "incDel" : false
}


 


IndexPropClause

Defines index property for IndexClause

Schema

{
   "name"     : string,
   "collate"  : string, 
   "default"  : any,
   "tokenize" : string,
   "type"     : string
}

Elements

Element Required Type Description
name Yes string Name of property being indexed.
collate   No string Indicates the string comparison routine used to order the index. Must be one of the following:
  • default—Does binary comparison.
  • primary—Compares base characters (for example, "a" < "b") without considering accents, case, or tone marks.
  • secondary—Accents in the characters are considered secondary differences (for example, "as" < "às" < "at"). Other differences between letters can also be considered secondary differences, depending on the language. A secondary difference is ignored when there is a primary difference anywhere in the strings.
  • tertiary—Upper and lower case differences in characters are distinguished at the tertiary level (for example, "ao" < "Ao" < "aò"). In addition, a variant of a letter differs from the base form on the tertiary level (such as "A" and "?"). A tertiary difference is ignored when there is a primary or secondary difference anywhere in the strings.
default No any Default value to set for this property at insertion time, if not present.
tokenize No string

Indicates if words in strings should be broken up, i.e., should "Hello World" become "Hello" and "World" for purposes of indexing.

Must be one of the following:

  • none—Does not tokenize.
  • default—Use the default for the locale (which may strip stop-words). Stop-words are common words that are stripped for purposes of indexing, i.e., "the", "a", "an", "is", etc.
  • all—Tokenizes all words.
type Yes string "single" or "multi". Single property or multiple properties.

 


NotificationResponse

Notifies caller of change in query results returned from a "find" call.

Schema

{
   "returnValue" : boolean,
   "fired"       : boolean
}

Elements

Element Required Type Description
returnValue No boolean true (success) or false (failure).
fired Yes boolean Change notification flag.


 


PutResponse

Indicates success of operation and returns id and rev fields for each object.

Schema

{
   "returnValue" : boolean,
   "results"     : PutResult 
}

Elements

Element Required Type Description
returnValue Yes boolean true (success) or false (failure).
results Yes PutResult Array of objects containing the id and rev of each object that was put.


 


PutResult

Contains "id" and "rev" fields in PutResponse for JSON data object.

Schema

{
   "id"    : any,
   "rev"   : any
}

Elements

Element Required Type Description
id Yes any ID of the object that was put.
rev Yes any Object's revision ID. Every db8 object has this ID field. db8 maintains a global rev id counter that is incremented every time a db8 object is created or updated.


 


Query

Defines a db8 query.

Schema

{
   "select"  : string array,
   "from"    : string,
   "where"   : WhereClause array,
   "orderBy" : string,
   "desc"    : boolean,
   "incDel"  : boolean,
   "limit"   : int,
   "page"    : string
}

Elements

Element Required Type Description
select No string array Array of property names to return.
from Yes string Name of kind to retrieve results from.
where No WhereClausearray Array of clauses to test.
orderBy No string Order results on this property.
desc No boolean Return results in descending order.
incDel No boolean Include deleted objects. Deleted objects have _del=true.
Note: You can only request this if the "incDel" field was true when you created your indexes during a "putKind" operation. Otherwise, the query fails with a "no index for this query" message.
limit No int Specifies maximum number of results to return (0-500). Default is 500.
page No string Page key returned by previous query.

Example

{
   "select"  : ["displayName", "state"],
   "from"    : "com.mystuff.contacts:1",
   "where"   : [{"prop":"state","op":"=","val":"CA"}], 
   "orderBy" : "displayName",
   "desc"    : true 
}

 


ReserveIdsResponse

Contains operation success or failure flag and array of reserved db8 IDs returned from "reserveIds" call.

Schema

{
   "returnValue" : boolean,
   "ids"         : string array
}

Elements

Element Required Type Description
returnValue Yes boolean true (success) or false (failure).
ids No string array Array of reserved IDs.


 


RevSetClause

Defines a revision set—subset of an object's properties that your app can be notified about when one of the properties is modified. See Using Revision Sets for more information.

Schema

{
   "name"  : string,
   "props" : RevSetPropClause array
}

Elements

Element Required Type Description
name Yes string Name of the revision set (unique to this kind).
props Yes RevSetPropClausearray Array of properties to include in revision set.

 


RevSetPropClause

A property in a RevSetClause.

Schema

{
   "name"  : string,
}

Elements

Element Required Type Description
name Yes string Name of property to include in revision set.


 


SuccessResponse

Indicates operation success or failure.

Schema

{
   "name"  : string,
}

Elements

Element Type Description
returnValue boolean true (success) or false (failure).

Example

{
   "returnValue": false
}

 


WhereClause

Defines a SQL-like JSON where clause for a db8 Query.

Schema

{
   "prop"    : string,
   "op"      : string, 
   "val"     : any,
   "collate" : string
}

Elements

Element Required Type Description
prop Yes string Name of property to test.
op Yes string Test operator. Must be one of the following:
"<", "<=", "=", ">=", ">", "!=", "%", "?"
(less than, less than or equal, equals, greater than or equal, greater than, not equal, wildcard, and full-text)
The "%" operator (aka - the prefix operator) will return all matches beginning with the value specified.
val Yes any Value to test against.
collate No any Indicates the string comparison routine used to order the results. See the collate field in the IndexPropClause data structure for more information.

Example

{
   "prop" : "state",
   "op"   : "=",
   "val"  : "CA"
}


'프로그래밍' 카테고리의 다른 글

[읽는중] 점프투파이썬  (0) 2013.12.24
cpplint 사용후기  (0) 2013.12.05
[일반][프로그래밍]비대칭경계  (0) 2013.10.26
pair coding 를 하기 위한 자세  (0) 2012.04.27
콘솔상 동작 상태 애니메이션  (0) 2012.04.12
Posted by code cat
안드로이드/포팅2013. 12. 1. 11:03

xda 포럼에서 가져왔는데 링크가...



 adb devices   

 list all connected devices

 adb push <local> <remote>

 copy file/dir to device

 adb pull <remote> [<local>]

 copy file/dir from device

 adb sync [ <directory> ]

 copy host->device only if changed

 adb shell

 run remote shell interactively

 adb shell <command>

 run remote shell command

 adb emu <command>

 run emulator console command

 adb logcat [ <filter-spec> ]

 View device log

 adb forward <local> <remote>

localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
dev:<character device name>
jdwp:<process pid> (remote only)

 forward socket connections forward specs are one of: tcp:<port>

 adb jdwp 

 list PIDs of processes hosting a JDWP transport

 adb install [-l] [-r] [-s] <file> push this package file to the device and install it
 adb uninstall [-k] <package> remove this app package from the device (‘-k’ means keep the data and cache directories)
 adb bugreport return all information from the device that should be included in a bug report.
 adb help show this help message
 adb version show version num
 adb wait-for-device block until device is online
 adb start-server ensure that there is a server running
 adb kill-server

 kill the server if it is running

 adb get-state prints: offline | bootloader | device
 adb get-serialno

 prints: <serial-number>

 adb status-window continuously print device status for a specified device
 adb remount remounts the /system partition on the device read-write
 adb reboot [bootloader|recovery] reboots the device, optionally into the bootloader or recovery program
 adb reboot-bootloader

 reboots the device into the bootloader

 adb root

 restarts the adbd daemon with root permissions

 adb usb  restarts the adbd daemon listening on USB
 adb tcpip <port> 

 restarts the adbd daemon listening on TCP on the specified port




Posted by code cat